0

それが本当に意味があるかどうかはわかりません...

申し訳ありませんが、それをどのように表現すればよいかわかりません。問題は、私が持っているプレイ配列関数にあります。機能は

$("#myVid").bind("ended", function() {
            $("#MyT").fadeIn(250);
            function playArray(ele, array) {
                index++;
                if (index >= array.length) {
                    index = i;
                }
                ele.src = array[index];
                ele.load();
                ele.play();
            }
            playArray(document.getElementById("myVid"), videos);

基本的に、再生中のビデオが終了すると、配列内の次のビデオが再生されます。アイデアは、<li>タグを適用して配列内の任意のビデオを再生できるということです。正常に動作します。

クリックしたのが 2 回目でない限り。この時点で、クリックが「スタック」するため、次のビデオを再生する代わりに、次のビデオの次のビデオを再生します。どうすればこれを修正できますか?

編集:さて、これがjsです

$(window).load(function(){
        var index = 0;
        var videos = ['images/Answer1b.m4v', 'images/Answer2b.m4v', 'images/Answer3b.m4v', 'images/Answer4b.m4v', 'images/Answer5b.m4v', 'images/Answer6b.m4v'];
        $("#MyT").fadeOut();
$("li, .thumbs").bind("touchstart click", function() {
        $("#bigPic").removeClass("move");
        $("#MyT").fadeIn(0);
        });

$('li', '.thumbs').on('touchend click', function() {
    index = $(this).index();
    var myVideo = document.getElementById('myVid');
        myVideo.src = videos[index];
        myVideo.load();
        myVideo.play();


        $("#myVid").bind("loadeddata", function() {
        $("#bigPic").addClass("move");
        $("#MyT").fadeOut(750);
        });

    $("#myVid").bind("playing", function() {
        ("#bigPic").removeClass("move");
        $("#MyT").fadeOut(750);
        });

        $("#myVid").bind("ended", function() {
            $("#bigPic").removeClass("move");
            $("#MyT").fadeIn(250);
            function playArray(ele, array) {
                index++;
                if (index   >= array.length) {
                    index = 1;
                }
                ele.src = array[index];
                ele.load();
                ele.play();
            }
            playArray(document.getElementById("myVid"), videos);
        });
    });
    video.on("timeupdate", function() {
        var currentPos = myVid.currentTime;
        var maxduration = myVid.duration;
        var perc = 100 * currentPos / maxduration;
        $(".timeBar").css("width",perc+"%");    
    });
    var updatebar = function(x) {
        var progress = $(".progress");
        var maxduration = myVid.duration;
        var percentage = 100 * position / progress.width();
        if(percentage > 100) {
            percentage = 100;}
        if(percentage < 0) {
            percentage = 0;}
        $(".timeBar").css("width",percentage+"%");  
        myVid.currentTime = maxduration * percentage / 100;
    };
});

そのように設定しないと干渉していたので、2回のクリック(touchstartおよび)でバインドしました...touchend

4

2 に答える 2

0

2つの異なる再生機能を使用して解決しました。

クリックすると呼び出されます

$('li', '.thumbs').bind('touchend click', function() {
        $("#myVid").bind("loadeddata", function() {
        $("#bigPic").addClass("move");
        $("#MyT").fadeOut(750);
                });
        playVideo2( $(this).index() );
        });

もう1つはビデオが終了したとき

$("#myVid").bind("ended", function() {
    //stuff happens
 playVideo( (currentVideo + 1) % videos.length );
        });

インデックスを除いて2つの機能は同じです

function playVideo(videoNumToPlay) {
            var myVideo = document.getElementById('myVid');
             myVideo.src = videos[videoNumToPlay];
             myVideo.load();
             myVideo.play();
             currentVideo = videoNumToPlay;
        }

        function playVideo2(index) {
            var myVideo = document.getElementById('myVid');
             myVideo.src = videos[index];
             myVideo.load();
             myVideo.play();
             currentVideo = index;
        }

document.readyああ、配列はクリックの下ではなく下に設定されます。

var videos = ['images/intro01.m4v', 'images/intro02.m4v', 'images/intro3.m4v', 'images/talking1.m4v', 'images/chord.m4v', 'images/dizzy.mp4'],
        currentVideo;
于 2012-05-24T23:21:32.703 に答える
0

私の最初のコメントから続けて:

クリックがあった場合、インデックス値を 1 減らします

jquery $(document).ready 関数内にこれを追加してみてください:

/*Target you play button click function here*/
$("#play-button").click(function(){
    index--;
});
于 2012-05-22T03:00:27.250 に答える