2

私は今この解決策を思いつきました:

    var myPlayer1 = _V_("ID1");
    var myPlayer2 = _V_("ID2");
    ...
    ...

    var myFunc1 = function(){
        var myPlayer1 = this;

        myPlayer2.pause();
        myPlayer3.pause();
        myPlayer4.pause();
        ...
    };
    myPlayer1.on("play", myFunc1);

    var myFunc2 = function(){
        var myPlayer2 = this;

        myPlayer1.pause();
        myPlayer3.pause();
        myPlayer4.pause();
        ...
    };
    myPlayer2.on("play", myFunc2);

    ...

それを行う他の正気の方法はありますか?

ありがとう。

4

4 に答える 4

2

jQuery を使用していると仮定して、このソリューションを試すことができます。

現在再生されていないビデオを一時停止しないようにすることもできます。これは、ループに別のチェックを追加することで実行できます。ここでは、別の動画の再生が開始されるたびに、ページ上のすべての動画が一時停止されます。

また、ビデオ ID ( ike $(this).player など) を回避するためのより良い方法があるかもしれませんが、これでうまくいきます。

 $(".video-js").each(function (videoIndex) {
    var videoId = $(this).attr("id");

    _V_(videoId).ready(function(){
        this.on("play", function(e) {
            //pause other video
            $(".video-js").each(function (index) {
                if (videoIndex !== index) {
                    this.player.pause();
                }
            });
        });

    });
});
于 2013-09-10T13:04:32.600 に答える
0

これは、再生がクリックされたときに、ページ上の他のすべての videojs インスタンスを一時停止する有効なソリューションです。

$(".video-js").each(function (videoIndex) {
    var videoId = $(this).attr("id");
    videojs(videoId).ready(function(){
        this.on("play", function(e) {
            $(".video-js").each(function (index) {
                if (videoIndex !== index) {
                    this.player.pause();
                }
            });
        });
    });
});

解決策はこちらにあります

于 2020-03-25T11:37:16.633 に答える
0

これを新規に使っていますVideojs v5

$('.video-js').each(function () {
  videojs(this.id).ready(function () {
    myPlayer = this;
    myPlayer.play();
  });
});

于 2016-11-28T23:10:00.993 に答える