Интеграция Magnolia CMS и JWPlayer для видеопроигрывателя с несколькими форматами видео для запуска - PullRequest
0 голосов
/ 08 сентября 2011

Я работаю над Magnolia CMS для создания шаблонов и использования JWBox и JWPlayer для реализации видеопроигрывателя при работе с несколькими видеоформатами, такими как mp4, webm, ogg и, что важно, резервный флэш-файл.

У меня возникла ситуация, когда он не работает в некоторых браузерах, таких как Mozilla & Opera, но если я запускаю это на обычном html-файле, код работает

Код:

<!DOCTYPE html>

<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>All</title>
<link rel="stylesheet" href="jwbox.css" media="screen">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.jwbox.js"></script>
<script type="text/javascript" src="jwplayer.js"></script>
<script type="text/javascript" src="video.js"></script>




</head>
<body>
<div class="jwbox" style="margin-bottom:-50px">
<img class="jwboxPosterImg" src="image.jpg"/>
<img class="jwboxPlayButton" alt="Play" width="50" style="position:relative;left:-155px;top:-75px;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)" title="Click to play" src="play_button.png"/>
<div class="jwbox_hidden">
<div  class="jwbox_content">
    <video id="" width="365" height="266" controls="controls" poster="image.jpg">
    <source src="testvid.ogv" type="video/ogv" />
    <source src="testvid.webm" type="video/webm" />
    <source src="testvid.mp4" type="video/mp4" />
    <object type="application/x-shockwave-flash" width="640" height="480" wmode="transparent" data="player.swf?file=testvid.mp4&autostart=true&image=image.jpg">
    <param name="movie" value="player.swf?file=testvid.mp4&autostart=true&image=image.jpg"/>
    <param name="wmode" value="transparent" />
    </object>

    </video>
 </div>
 </div>
 </div>
 <br>
 <div class="jwbox" style="margin-bottom:-50px">
<img class="jwboxPosterImg" src="image.jpg"/>
<img class="jwboxPlayButton" alt="Play" width="50" style="z-index:1003;position:relative;left:-155px;top:-75px;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)" title="Click to play" src="play_button.png"/>
<div class="jwbox_hidden">
<div  class="jwbox_content">
    <video id="" width="365" height="266" controls="controls" poster="image.jpg">
    <source src="testvid.ogv" type="video/ogv" />
    <source src="testvid.webm" type="video/webm" />
    <source src="testvid.mp4" type="video/mp4" />
    <object type="application/x-shockwave-flash" width="640" height="480" wmode="transparent" data="player.swf?file=testvid.mp4&autostart=true&image=image.jpg">
    <param name="movie" value="player.swf?file=testvid.mp4&autostart=true&image=image.jpg"/>
    <param name="wmode" value="transparent" />

    </object>
    <p>Your browser does not support the video tag. If want you can put fallback method instead of this line....</p>
    </video>
 </div>
 </div>
 </div>

 </body>

<script type="text/javascript">
var d = $('video');
for(i=0;i<d.length;i++){
    d[i].id="video_"+i;
}
setTimeout( function() {
    var ff = $('video');
    for(j=0;j<2;j++){
        jwplayer(ff[j].id).setup({
            height: 480, 
            width: 640, 
            autostart:true,
            modes: [ 
            { type: "html5" }, 
            { type: "flash", src: "player.swf" }, 
            { type: "download" } 
            ] 
        }); 
    }
}, 500 );
</script>

 </html>

Исключение, выбрасываемое Magnolia при запуске на Mozilla / Opera (которое работает на IE / Chrome / Safari):

2011-09-08 13: 46: 15,460 ОШИБКА info.magnolia.module.dms.DMSDownloadServlet: ошибка при загрузке

ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error

        at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)

        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323)

        at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)

        at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)

        at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)

        at info.magnolia.module.dms.DMSDownloadServlet.sendUnCompressed(DMSDownloadServlet.java:123)

        at info.magnolia.module.dms.DMSDownloadServlet.handleResourceRequest(DMSDownloadServlet.java:108)

        at info.magnolia.module.dms.DMSDownloadServlet.process(DMSDownloadServlet.java:184)

        at info.magnolia.module.dms.DMSDownloadServlet.doGet(DMSDownloadServlet.java:74)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

        at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:119)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:66)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:69)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:57)

        at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:147)

        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:60)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:75)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.module.extendedtemplatingkit.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:94)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:64)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:88)

        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:60)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:77)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:51)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)

        at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:86)

        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:60)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:102)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:120)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)

        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:66)

        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:88)

        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:105)

        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:216)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)

        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

        at java.lang.Thread.run(Thread.java:619)

Caused by: java.net.SocketException: Connection reset by peer: socket write error

        at java.net.SocketOutputStream.socketWrite0(Native Method)

        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

        at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:741)

        at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)

        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)

       at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:765)

        at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:118)

        at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:574)

        at org.apache.coyote.Response.doWrite(Response.java:560)

        at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)

        ... 76 more

Дайте мне решение ...

Заранее спасибо ...

Ответы [ 3 ]

1 голос
/ 13 января 2014

Этому вопросу два года, и в то время DMSDownloadServlet не смог доставить содержимое с «поддержкой диапазона байтов» (см. MAGNOLIA-3855 ). Я помню ту же проблему.

Магнолия теперь имеет фильтр в цепочке фильтров с именем «range» info.magnolia.cms.filters.RangeSupportFilter, и это должно решить эти проблемы.

0 голосов
/ 13 сентября 2011

Исключение, которое вы видите в журналах, является результатом того, что клиент закрывает соединение с сервером, или сетевое устройство прерывает соединение (например, капризный брандмауэр ограничивает пропускную способность или, скорее всего, срок службы соединений). Обратный прокси-сервер также может быть проблемой. В любом случае я сначала диагностировал бы проблему на клиенте, а затем на брандмауэрах перед самой Magnolia.

Исключение часто встречается в журналах сервера, поскольку оно генерируется, когда браузер прерывает соединение, например, когда пользователь нажимает кнопку остановки в браузере.

0 голосов
/ 08 сентября 2011

Появляется ошибка, указывающая, что JWPlayer сбрасывает соединение, когда DMS Магнолии пытается передать ему контент.Я не уверен, почему это так, если только он, возможно, не сможет выполнить HTTP Partial Get , и капризно, что сервлет загрузки DMS от Magnolia не предоставляет такую ​​функциональность.

Если бы это был я, я мог бы попробовать поставить Wireshark или что-то подобное на соединении между сервером и клиентом, чтобы увидеть, что происходит по-разному в разных браузерах.

...