0

モーダルを閉じたときに YouTube ビデオの再生を停止できないようです。ビデオは消えますが、オーディオは引き続き再生されます。

他の多くの質問で解決策を試しましたが、何もうまくいかないようです。おそらく私の動画が深く入れ子になっていて、ターゲットにできていないことが原因だと思います。および/または iframe に同じ名前の要素 ID があるためです。(私を始めさせないでください。)

DOM を簡単に見てみると、次のようになります。

html
  head
  body
    <div id="popoverview">
      <div id="popoveritem">
        <iframe id="popoverframe">   <!-- this is our modal -->
          #document
            html
              head
              body
                <div id="popovercontainer">
                  <div id="popover_upc_video">
                    <div id="current_video">
                      <div id="player">
                        <iframe id="popoverframe">
                          #document  <!-- this is from youtube -->
                            html
                              head
                              body
                                <div id="player">
                                  <div id="playercontainer">
                                    <embed id="video-player-flash">  <!-- the video -->

これは、モーダルに ?enablejsapi=1 を含む youtube ビデオを挿入する JavaScript の一部です。

document.getElementById('player').innerHTML = '<iframe id="youtubevideo" width="620" height="376" src="http://www.youtube.com/embed/'+youtube_id+'?enablejsapi=1?hl=en&rel=0&fs=1&modestbranding=1" frameborder="0" allowfullscreen>Error?</iframe>';

モーダルを閉じる関数の一部を次に示します。問題は、オーディオが再生し続けることです。エラー メッセージは Uncaught TypeError: Object [object Object] has no method 'stopVideo' です。

var myPlayer = $('#player > #video-player-flash');
myPlayer.stopVideo();

かなりの数のターゲティング方法を試しましたが、何も機能していません。

助けてくれてありがとう。チャーリー・マギー

4

1 に答える 1

-1

DOM ノードの代わりに myPlayer に設定された jQuery オブジェクトがあります。

var myPlayer = $('#player > #video-player-flash')[0];
myPlayer.stopVideo();

この投稿を参照してください: YouTube で Javascript を使用してビデオを停止するにはどうすればよいですか?

于 2012-12-28T00:12:30.960 に答える