VideoJS и проблема встраивания swfobject - PullRequest
5 голосов
/ 17 января 2011

Я использую VideoJS и SWFObject для встраивания видео.Идея заключается в том, что VideoJS попытается использовать тег HTML5 video и откроется во Flash, если он не поддерживается.Я пытаюсь использовать SWFObject для встраивания Flash для использования в качестве запасного варианта.Вот соответствующий код:

<ul id="client_gallery">
<% if PortfolioMedia %>
    <% control PortfolioMedia %>
    <% if VideoFile %>
        <li style="width:{$VideoWidth}px;height:{$VideoHeight}px">
            <div class="video-js-box">
                <video class="video-js" width="$VideoWidth" height="$VideoHeight" controls preload>
                    <source src="$VideoFile.URL" type="video/mp4" />
                    <div id="flash_player"></div>
                    <script type="text/javascript">
                    var flashvars = {
                        'file': "$VideoFile.URL"
                    };

                    var params = {
                        'allowfullscreen': "true",
                        "wmode": "transparent"
                    };

                    var attr = {
                        'id': 'f_player',
                        'name': 'f_player'
                    };

                    swfobject.embedSWF('/portfolio/javascript/jwplayer/player.swf', 'flash_player', '$VideoWidth', '$VideoHeight', '9', '', flashvars, params, attr, function(e){
                    });
                    </script>
                </video>
            </div>
        </li>
        <% end_if %>
    <% end_control %>
<% end_if %>
<script type="text/javascript">
    $(function(){
        VideoJS.setupAllWhenReady();
    });
</script>
</ul>

Другая запись от CMS Silverstripe, которая не имеет отношения к этой проблеме.Это прекрасно работает в Chrome, Safari и IE, но не в Firefox.В Firefox все, что я получаю, это пустой контейнер, как будто он пытается использовать тег <video>, но не может загрузить совместимый источник.

Он вообще не встраивает Flash, и я знаю swfobjectкод работает, потому что если я использую только код swfobject, а не внутри тега <video>, он работает отлично.Итак, проблема в том, что VideoJS не отступит от кода, встроенного в swfobject.Но почему?

1 Ответ

2 голосов
/ 23 января 2012

videojs уже имеет встроенную поддержку флэш-памяти как запасной вариант. Если вы хотите использовать свой собственный флэш-плеер, вы можете изменить его в настройках, например:

<script type="text/javascript">
  VideoJS.options.flash.swf = "pathtoyourplayer.swf";
  VideoJS.options.flash.flashVars = {youroptions};
  VideoJS.options.flash.params = {youtparams};
  VideoJS.options.flash.attributes = {yourattributes};
</script>

..

<video ...>
  <source src=".." type="video/mp4" />
</video>

дополнительно: swfObject уже включен в videojs.

...