Непризнанная функция: ошибка автовоспроизведения с встроенным проигрывателем YouTube

Кто-нибудь еще видит это предупреждение в консоли браузера при загрузке проигрывателя iFrame YouTube с использованием API данных 3?

Unrecognized feature: 'autoplay'.

Ошибка возникает в файле Google: www-widgetapi.js: 110 это ошибка JavaScript (это из строки 110):

c.setAttribute("allowfullscreen",1);c.setAttribute("allow","autoplay; encrypted-media");

Я предполагаю, что часть автовоспроизведения должна быть просто:

c.setAttribute("autoplay",0);

Файл находится здесь: https://s.ytimg.com/yts/jsbin/www-widgetapi-vflkvQ6Kw/www-widgetapi.js

Ошибка даже возникает на демонстрационной странице разработчика: https://developers.google.com/youtube/youtube_player_demo

Как люди сообщают об этом Google?

Ответ 1

Интересно, если это:

https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

Как вы могли заметить, веб-браузеры продвигаются к более строгим политикам автовоспроизведения, чтобы улучшить пользовательский интерфейс, минимизировать стимулы для установки блока объявлений и сократить потребление данных в дорогих и/или ограниченных сетях. Эти изменения призваны обеспечить больший контроль над воспроизведением пользователей и принести пользу издателям с законными вариантами использования.

Правила автоматического прокрутки Chrome просты:

  • Приглушенное автовоспроизведение всегда разрешено.
  • Автовоспроизведение со звуком разрешено, если:
    • Пользователь взаимодействовал с доменом (нажмите, коснитесь и т.д.).
    • На рабочем столе пользовательский порог индекса взаимодействия с носителями был скрещен, что означает, что пользователь ранее воспроизводил видео со звуком.
    • На мобильном телефоне пользователь добавляет сайт на свой домашний экран.
    • Верхние кадры могут делегировать разрешение автовоспроизведения на свои фреймы, чтобы разрешить автовоспроизведение со звуком.

Что-то с этим связано. Я столкнулся с той же проблемой, и в статье упоминается, что способ автовоспроизведения будет работать с января 2018 года (теперь! 🎉) будет меняться.

Я удалил автовоспроизведение в своем коде и вместо этого использовал метод, описанный в этом ответе

вот так:

player = new YT.Player( videoID , {
    videoId: youtubeID, // the ID of the video (mentioned above)
    playerVars: {
        // autoplay: 1, // start automatically
        controls: 0, // don't show the controls (we can't click them anyways)
        modestbranding: 1, // show smaller logo
        loop: 1, // loop when complete
        playlist: youtubeID // required for looping, matches the video ID
    },
    events : {
        'onReady' : onPlayerReady
    }
});

function onPlayerReady(event) {
    player.mute();
    player.playVideo();
}

Я не уверен, что это "ответ", поэтому дайте мне знать, если вы этого не сделаете, и я удалю его.

Ответ 2

Я просто удалил autoplay; из атрибута allow на моем элементе iframe и включил autoplay = 1 в URL get paramerters для src:

src="https://www.youtube.com/embed/Kjf0PdhFqMw?autoplay=1&enablejsapi=1&modestbranding=1&rel=0&loop=1&controls=0&showinfo=0&mute=1&wmode=transparent"

Autoplay работает и эта ошибка больше не происходит.