1

我想获取我正在使用的歌曲的当前时间

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

但我收到错误Uncaught TypeError: Cannot read property 'status' of undefined in the console。

我想做的是假设正在播放一首歌曲,当用户点击另一首歌曲的播放按钮时,我想获得前一首歌曲的播放时间,然后开始播放点击的歌曲。

这是我的代码:

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。音频是第二个,这就是你做 childNodes[1] 的原因。

希望这可以帮助

于 2014-11-28T12:52:52.533 回答