web-dev-qa-db-ja.com

認識されない機能:YouTube埋め込みプレーヤーでの「自動再生」エラー

データ3 APIを使用してYouTube iFrame埋め込みプレーヤーを読み込むときに、ブラウザコンソールにこの警告が表示されますか?

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にどのように報告しますか?

15
beachCode

私はこれかどうかのだろうか:

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

お気づきかもしれませんが、Webブラウザーは、ユーザーエクスペリエンスを向上させ、広告ブロッカーをインストールするインセンティブを最小限に抑え、高価なネットワークや制約のあるネットワークでのデータ消費を削減するために、より厳しい自動再生ポリシーに移行しています。これらの変更は、ユーザーによる再生の制御を強化し、正当なユースケースでパブリッシャーに利益をもたらすことを目的としています。

Chromeの自動再生ポリシーは簡単です:

  • ミュートされた自動再生は常に許可されます。
  • 次の場合、音声付きの自動再生が許可されます。
    • ユーザーがドメインと対話しました(クリック、タップなど)。
    • デスクトップでは、ユーザーのMedia Engagement Indexのしきい値を超えました。これは、ユーザーが以前に音声付きのビデオを再生したことを意味します。
    • モバイルでは、ユーザーが自分のホーム画面にサイトを追加しました。
    • トップフレームは、iframeに自動再生許可を委任して、音声付きの自動再生を許可できます。

それと何か関係があります。私は同じ問題を思いつきました、そして記事は自動再生が2018年1月から動作する方法(今!????)はchanging

コードの自動再生を削除し、代わりに this answer で説明されている手法を使用しました

そのようです:

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();
}

これが「答え」を構成するかどうかはわかりませんので、そうでない場合はお知らせください。削除します。

11
Djave

Iframe要素のallow属性からautoplay;を削除し、srcのURL getパラメータにautoplay = 1を含めました。

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"

自動再生が機能し、そのエラーはもう発生しません。

4
gotjosh