-1

このコードを使用して、ページに YouTube ビデオを追加しました。

 <div id="ytplayer"></div>
            <script>
                // Load the IFrame Player API code asynchronously.
                var tag = document.createElement('script');
                tag.src = "https://www.youtube.com/player_api";
                var firstScriptTag = document.getElementsByTagName('script')[0];
                firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

                // Replace the 'ytplayer' element with an <iframe> and
                // YouTube player after the API code downloads.
                var player;
                function onYouTubePlayerAPIReady() {
                    player = new YT.Player('ytplayer', {
                        height: '390',
                        width: '640',
                        videoId: 'o9UQSUHHdtA',
                        events: {
                            'onReady': onPlayerReady,
                            'onStateChange': onPlayerStateChange
                        }
                    });
                }
            </script>

ユーザーがボタンをクリックするとビデオが再生されます。display:none を削除すると表示されます。現在、Firefox では動作しませんが、Chrome では正常に動作します。誰かが私を助けてくれますか。

ありがとう: ライブはこちら.

TypeError: player.seekTo is not a function誰かがプレーヤーのロードを待つ方法を知っていますか。firebugで手動でplayer.seekToを実行すると、うまくいきます。

4

3 に答える 3

0
var _isPlayerReady=  false;
     function _playVideo(){
                setTimeout(function(){
                        if (_isPlayerReady) {
                            player.seekTo(0);
                        }
                        else{
                            _playVideo();
                        }
                },1000);
            }

function onPlayerReady(event){
isPlayerReady = true;
}

Ciack404 が言うように、YT API で利用できるイベントは 2 つあります。これが私の作り方です。

Ready イベントで onPlayerReady を呼び出します。これは非表示であるため、Firefox では使用できません (Show() コールバックを使用しようとしていない場合は、このトリックが役立ちます)。

このコード コール チェック プレーヤーが存在し、動作した次の秒でビデオを再生します。これはすべてのブラウザで正常に機能します。

注:- 非表示の div ビデオを Chrome で再生できるが、Firefox 17 では動作しないことを確認しました (今のところ)。これが、ビデオが非表示から表示状態になるため、Timeout 機能を設定する理由です。

于 2013-01-14T11:25:51.063 に答える
0

YouTube iFrame API .seekTo() はメソッドではありませんか?

次の条件が満たされていることを確認してください。

  1. ID player を持つコンテナが定義されています。<div id="ytplayer"></div>.
  2. コードは延期されません。つまり、onload イベント内、$(document).ready、setTimeout などではありません。そうしないと、IFrame API の読み込みに失敗し、コードが機能しません。
  3. jQuery が読み込まれます。
于 2013-01-14T11:13:03.800 に答える
0

使用する必要があります

window.onYouTubePlayerAPIReady() {
    player = new YT.Player('ytplayer', {
        height: '390',
        width: '640',
        videoId: 'o9UQSUHHdtA',
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}
于 2013-01-14T11:16:34.100 に答える