1

使用している曲の現在の時間を取得したい

var currentTime = $('#jquery_jplayer_1').data("jPlayer").status.currentTime;

しかし、コンソールでUncaught TypeError: Cannot read property 'status' of undefined というエラーが表示されます。

私がやろうとしているのは、曲が再生されていると仮定し、ユーザーが別の曲の再生ボタンをクリックすると、前の曲の再生時間を取得してから、クリックした曲の再生を開始することです。

これが私のコードです:

var currentTime = $('#jquery_jplayer_1').data("jPlayer").status.currentTime;
alert(currentTime);

$("#jquery_jplayer_1").jPlayer("stop");

var id = "#jquery_jplayer_1";
var media = {
    mp3: audio_element
};
var options = {
    swfPath: "/appystream/assets/jplayer",
    supplied: "mp3",
    wmode: "window"
};
var currentTime = $('#jquery_jplayer_1').data("jPlayer").status.currentTime;
alert(currentTime);

// jPlayer android versions 2.3 fix.
var myFix = new jPlayerAndroidFix(id, media, options);
myFix.setMedia(media).play();
setTimeout(function () {
    myFix.setMedia(media).play();
}, 2000);

現在の時刻を取得するコードをどこに置いても、上記のエラーで応答します..

私は何を間違っていますか?他にどうすればいいですか?

4

2 に答える 2

2

私はあなたが間違った方法で物事をしていると思います。私のやり方は次のとおりです。

$(document).ready(function(){

    $("#jp").jPlayer({
        ready: function () {
            $(this).jPlayer("setMedia", {
                m4v: "http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer_480x270_h264aac.m4v",
                ogv: "http://www.jplayer.org/video/ogv/Big_Buck_Bunny_Trailer_480x270.ogv",
                poster: "http://www.jplayer.org/video/poster/Big_Buck_Bunny_Trailer_480x270.png"
            });
        },
        ended: function (event) {
            $(this).jPlayer("play");
        },
        swfPath: "js",
        supplied: "m4v, ogv"
    });

    $("#jp").bind($.jPlayer.event.timeupdate, function(event) { 
        var currentTime = Math.floor(event.jPlayer.status.currentTime)

        if (currentTime < 3){
            $("#slideshow").html("<img src='http://yoursite.com.com/wm/jplayer/slides/slide1.png'/>");  
        }

        if (currentTime >= 3 && currentTime < 12){
            $("#slideshow").html("<img src='http://yoursite.com.com/wm/jplayer/slides/slide2.png'/>");  
        }

        if (currentTime >= 12 && currentTime < 16){
            $("#slideshow").html("<img src='http://yoursite.com.com/wm/jplayer/slides/slide3.png'/>");  
        }

        if (currentTime >= 16 && currentTime < 22){
            $("#slideshow").html("<img src='http://yoursite.com.com/wm/jplayer/slides/slide4.png'/>");  
        }

        if (currentTime >= 22 && currentTime < 30){
            $("#slideshow").html("<img src='http://yoursite.com.com/wm/jplayer/slides/slide5.png'/>");  
        }


        if (currentTime >= 30){
            $("#slideshow").html("<img src='http://yoursite.com.com/wm/jplayer/slides/fin.png'/>"); 
        }



    });


});
于 2013-03-02T07:25:24.353 に答える
1

古い質問であることは知っていますが、あなたが期待していたのと同じ答えが必要であり、解決策を見つけました。

これはおそらくあなたが望んでいたものですか?

$("#jquery_jplayer_1").jPlayer()[0].childNodes[1].currentTime

そうでない場合は、 $("#jquery_jplayer_1").jPlayer()[0].childNodes で遊んでオーディオ要素を見つけます。しかし、私の知る限り、そこには img と audio の 2 つの要素しかないはずです。オーディオは 2 番目のものです。そのため、childNodes[1] を実行します。

お役に立てれば

于 2014-11-28T12:52:52.533 に答える