#javascript #youtube #mediaelement.js
#javascript #YouTube #mediaelement.js
Вопрос:
Я пытался добавить amp;iv_load_policy = 3 в конец URL-адреса YouTube несколькими способами, но аннотации все еще отображаются. Есть ли какой-либо способ отредактировать код, чтобы аннотации не отображались?
РЕДАКТИРОВАТЬ: КОД НИЖЕ
Файлы изMediaElement.js Плагин
Случайное видео с аннотациями:https://www.youtube.com/watch?v=IGz13x5OJ_8
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" ></script>
<script src="mediaelement-and-player.min.js"></script>
<link rel="stylesheet" href="mediaelementplayer.css" />
<script>
$(function(){
player = new MediaElementPlayer('#video-player');
});
</script>
<video style="width:100%;height:100%;" id="video-player" preload="preload" autoplay="autoplay">
<source type="video/youtube" src="https://www.youtube.com/watch?v=IGz13x5OJ_8" />
</video>
Комментарии:
1. Не могли бы вы показать код, который вы используете? Не могли бы вы предоставить ссылку на видео YouTube с аннотациями?
2. @JFK Первоначальный вопрос был обновлен. Я попытался отредактировать mediaelement-and-player.js в некотором роде добавить amp;iv_load_policy= 3, но пока ничего не сработало.
3. Я не могу воспроизвести вашу проблему. Это jsfiddle.net/K5cY9 с вашим точным кодом не отображаются никакие аннотации (Firefox и Chrome). При каких условиях вы получаете аннотации? ОС? браузер? можете ли вы создать скрипку или демо, чтобы воспроизвести ее?
4. @JFK На вашем jsFiddle я не вижу аннотаций в Chrome с Mavericks, но я вижу их в IE с Windows 7. Но с тем же кодом на моем веб-сайте я вижу аннотации во всех сценариях. Я не вижу ничего, что вы изменили, чтобы удалить аннотации. Возможно, у jsFiddle есть какие-то внутренние настройки YouTube?
5. Я знаю, что происходило с jsfiddle: он использовал MEJS v2.8.2 (как в демонстрационных версиях MEJS), и аннотации не отображались. Я обновил его до более новой версии (v2.13.2), и аннотации отображаются во всех браузерах jsfiddle.net/K5cY9/1 … это хорошая отправная точка.
Ответ №1:
Единственный способ, который я нашел для подавления аннотаций YouTube, — это установка плагина YouTube MEJS вместо flash (по умолчанию), например :
$(function () {
player = new MediaElementPlayer('#video-player', {
plugins: ['youtube']
});
});
Единственное неудобство заключается в том, что autoplay
не работает (пока не нашел опцию), но, по крайней мере, основная проблема решена 😉
Смотрите JSFIDDLE
Комментарии:
1. Спасибо! Это решает проблему. Методы play() или load (), похоже, не сразу воспроизводят видео, поэтому должно быть что-то, что проигрыватель делает onclick для инициализации YouTube.
Ответ №2:
Встроенный проигрыватель — это флэш-версия.
Согласно API проигрывателя YouTube, только проигрыватели html5 и AS3 поддерживают эту опцию:https://developers.google.com/youtube/player_parameters#iv_load_policy
Вы можете встроить это через iframe, и это встроит проигрыватель html5 и будет работать, например:
<iframe width="420" height="315" src="//www.youtube.com/embed/IGz13x5OJ_8?rel=0amp;iv_load_policy=3amp;autoplay=1amp;html5=1" frameborder="0" allowfullscreen></iframe>
amp;html5 = 1 предназначен только для принудительного использования html5, если это возможно, хотя, если видео поддерживает его, оно все равно должно использовать html5 по умолчанию.
Комментарии:
1. Кроме того, я не верю, что YouTube в настоящее время поддерживает встраивание видео html5 с использованием тегов video. Поди разберись.
2. Я уже пробовал это, и это хорошо работает для настольных браузеров, но проблема в том, что видео не будет воспроизводиться на мобильном устройстве (внутри mediaelement.js проигрыватель).
3. тогда возникает проблема с mediaelement.js библиотека. Это явно поддерживается YouTube, и это одна из причин, по которой они изначально создали проигрыватели html5. developers.google.com/youtube/iframe_api_reference