0

現在、Youtube JavaScript API を使用してビデオを Web ページに埋め込み、所有しているプレイリストを制御しています。私が何度も繰り返しているように見えるエラーは、タイトル、再生アイコン、読み込みアイコンをロードした直後にビデオ自体が真っ暗になることです。一瞬、ビデオが再生されるように見えます。しかし、タイトルがスライドしてビデオを再生できるようになった後、私が得るのは黒い背景だけです。タイトルは、右隅にある YouTube テキストとともに問題なく表示されます。しかし、ビデオ自体は再生されません。

この問題は、私が見ることができる iPhone でのみ発生しています。Android と PC で完璧に動作します。

    var playlistDescription = [];
    var playlist = [];
    var tag = document.createElement("script");

    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName("script")[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

    var youtubePlayer;
    function onYouTubeIframeAPIReady() {
        playlist.push("youtubevideoid");

        $(".video-list-item").each( function() {
            if ($(this).data("id") != "youtubevideoid") {
                playlist.push($(this).data("id"));
            }
        })

        youtubePlayer = new YT.Player("youtube-player", {
            videoId: "youtubevideoid",
            height: "378",
            width: "672",
            playerVars: {
                "color1": "#046a3b",
                "color2": "#faa820"
            },
            events: {
                "onReady": onPlayerReady,
                "onStateChange": onPlayerStateChange
            }
        });


    }  

    function onPlayerReady(event) {
        youtubePlayer.loadPlaylist(playlist);
    }

    function onPlayerStateChange(event) {
        if (event.data == -1 || event.data == 0) {
            var playlistDescriptionItem = playlistDescription[youtubePlayer.getPlaylistIndex()];
            $(".divSubHeadline").text(playlistDescriptionItem.title);
            $(".pageContent span").text(playlistDescriptionItem.description);
        }
    }

これは、YouTube プレイリストを読み込むために使用するスクリプトです。プレイリスト変数には、ビデオが接続されているプレイリスト アイテムが含まれます。

jsfiddleで動作させることができません-私だけかもしれません..だから、ここにスクリプトを貼り付けました。

4

2 に答える 2

0

私はまったく同じ問題を抱えていました。ここで答えを見つけました:

https://groups.google.com/forum/#!searchin/youtube-api-gdata/ios $20autoplay/youtube-api-gdata/Fr39edfAKgs/FxfdHIu3H8MJ

「警告: ユーザーの負担でセルラー ネットワークを介した未承諾のダウンロードを防ぐため、iOS の Safari では埋め込みメディアを自動的に再生できません。ユーザーは常に再生を開始します。再生が開始されると、iPhone または iPod touch ではコントローラーが自動的に提供されますが、iPad の場合は、 controls 属性を設定するか、JavaScript を使用してコントローラーを提供する必要があります。」

以下のコードを試してください。

youtubePlayer = new YT.Player("youtube-player", {
        videoId: "youtubevideoid",
        height: "378",
        width: "672",
        playerVars: {
            "autoplay": 1,
            "controls": 1,
            "showinfo": 0
        },
        events: {
            "onReady": onPlayerReady,
            "onStateChange": onPlayerStateChange
        }
    });


}  

function onPlayerReady(event) {
    // do whatever you need to do here
    // but don't call:
    // event.target.playVideo();
}
于 2013-08-12T07:41:49.750 に答える