Flash в mediaelement.js показывает только «скачать файл» - PullRequest
8 голосов
/ 26 февраля 2012

Я бы хотел, чтобы работал запасной вариант Flash для mediaelement.js, но он показывает только черную область с надписью «загрузить файл» в левом верхнем углу.Разметка видео, которую я создаю, выглядит очень похоже на это.Я просто изменил некоторые пути из соображений конфиденциальности:

<video width="1024" height="576" preload="none" style="display: none; ">
  <object width="1024" height="576" type="application/x-shockwave-flash" data="flashmediaelement.swf">
    <param name="movie" value="/wp-content/themes/my_theme/js/vendor/mediaelement/flashmediaelement.swf">
    <param name="flashvars" value="controls=true&amp;file=http://mybucket.s3.amazonaws.com/my_video.mp4">
   </object>
</video>

Что-то явно не так с этим?Есть ли способ получить отладочный вывод?Когда появляется «файл загрузки»?На странице mediaelement.js это нигде не упоминается.Сначала я подумал, что один из путей должен быть неправильным, но я не вижу сбойных запросов в инструментах отладки Chrome.

Любая помощь приветствуется!

РЕДАКТИРОВАТЬ: я извлек минимальный примерошибочный код и загрузил его здесь

Ответы [ 3 ]

11 голосов
/ 06 марта 2012

1) Вы не указали <source/> внутри видео - поэтому оно не работает. Вам нужно указать несколько <source/> для работы в разных браузерах - см. «Вариант B» в http://mediaelementjs.com/.

Ссылка «Загрузить файл» действительно генерируется логикой MediaElement (см. mediaelement-and-player.js:1027).

2) Откат Flash будет вызван, только если браузер не поддерживает тег <video>. Чтобы протестировать его в браузере, замените «» на недопустимый тег - скажем, «».

Вот исправленный код (заменены некоторые пути, чтобы иметь возможность его проверить):

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript" src="http://ajmurmann.com/flash_test/mediaelement-and-player.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){        
            $('video').mediaelementplayer({
            enablePluginDebug: true,
            plugins: ['flash','silverlight']
        });
            });
        </script>
    </head>
    <body>
        <video width="1024" height="576" controls="controls">
            <!-- MP4 for Safari, IE9, iPhone, iPad, Android, and Windows Phone 7 -->
            <source type="video/mp4" src="http://mediaelementjs.com/media/echo-hereweare.mp4" />
            <!-- WebM/VP8 for Firefox4, Opera, and Chrome -->
            <source type="video/webm" src="http://mediaelementjs.com/media/echo-hereweare.webm" />
            <!-- Ogg/Vorbis for older Firefox and Opera versions -->
            <source type="video/ogg" src="http://mediaelementjs.com/media/echo-hereweare.ogv" />
            <object width="1024" height="576" type="application/x-shockwave-flash" data="http://ajmurmann.com/flash_test/flashmediaelement.swf">
                <param name="movie" value="http://ajmurmann.com/flash_test/flashmediaelement.swf">
                <param name="flashvars" value="controls=true&amp;file=http://ajmurmann.com/flash_test/echo-hereweare.mp4">
            </object>
        </video>
    </body>
</html>
1 голос
/ 12 мая 2012

Как сказал ivan_pozdeev, вам нужно указать тег src в вашем видеоэлементе. Однако вам не нужно предоставлять несколько источников для MediaElement.js для работы в разных браузерах.

В вашем случае вы можете предоставить один файл .mp4, и он будет работать во всех браузерах (см. Шаг 2. Вариант A на http://www.mediaelementjs.com), если у вас установлен Flash или Silverlight (например, ME "Fall-"). Вперед "функционал).

«Загрузить файл» будет отображаться, когда HTML5 не является родным для используемого вами браузера, и у вас не установлен соответствующий плагин (например, Flash или Silverlight). В mediaelement-and-player.js разрыв строки 162 (var pv = this.plugins [plugin];) - если «pv» имеет значение «0, 0, 0», MediaElement не обнаружил плагин, и вы получит ссылку «Скачать файл».

0 голосов
/ 25 ноября 2014

Если вы пытаетесь сделать видео на YouTube, и оно показывает это, то произошло то, что я забыл поставить type = "video / youtube" в теге source.Было установлено значение type = 'video'

...