

いつもお世話になっております。  
Youtube APIを使用し、スマートフォンにて自動動画再生（背景として）を行っております。  
下記コードを記載しているのですが、再生ステータスを返してくれるonPlayerStateにおいて、-1と3を繰り返し、最終的に「2」で止まり、動画の再生がされない状況です。  
なぜ2で止まるのかがわかりません。  
PC環境では正常に再生されます。  
エラーは何も返ってきません。

また、同じコードを別サイトにても使用しているのですが、そちらは問題なく再生されております。  
このこともあり何が原因なのかさらにわからなくなっている状況です。

★動作確認環境  
・iOS12.3.1 safari

[code]

    function onYouTubeIframeAPIReady() {
        for(var i = 0; i < ytData.length; i++) {
            ytPlayer[i] = new YT.Player(ytData[i]['area'], {
                width: xxx,
                height: xxx,
                videoId: xxxx,
                events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange,
                    'onError': onPlayerError
                },
                playerVars: {
                    'autoplay': 1,
                    'rel': 0,
                    'showinfo': 0,
                    'modestbranding': 0,
                    'controls': 0,
                    'fs': 1,
                    'iv_load_policy': 3,
                    'enablejsapi': 1,
                    'disablekb': 1,
                    'origin': location.protocol + '//' + location.hostname + "/",
                    'wmode': "opaque",
                    'widgetid': 1,
                    'playsinline': 1,
                }
            });
        }
    }
    function onPlayerReady(event) {
        for (var i = 0; i < ytData.length; i++) {
          ytPlayer[i].mute();
          ytPlayer[i].playVideo();
       }
    }
    var done = false;
    function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING && !done) {
            for (var i = 0; i < ytData.length; i++) {
                if(event.target.getIframe().id == ytData[i]['area']) {
                    playVideoHead(ytPlayer[i],$("#"+ytData[i]['area']).parent());
                    done = true;
                }
            };
    
        }
        if (event.data == YT.PlayerState.ENDED) {
            for (var i = 0; i < ytData.length; i++) {
                if(event.target.getIframe().id == ytData[0]['area']) {
                    ytPlayer[i].playVideo();
                }
            };
    
        }
    
    }
    function playVideoHead(_tar){
        setTimeout(function(){
            _tar.seekTo(0);
            //ここで動画再生
        }, 3000);
    }
    
[/code]

よろしくお願いいたします。


CC BY-SA 4.0
2019-07-12T06:38:54.317
56590
2019-07-12T10:15:27.137
2019-07-12T10:15:27.137
13269
13269
question
javascript youtube-player-api
Youtube APIを使用した自動動画再生で動画が再生されない