我想获得一首歌的当前时间,我正在使用
var currentTime = $('#jquery_jplayer_1').data("jPlayer").status.currentTime;
但是我收到并且错误未捕获的TypeError:无法在控制台中读取未定义的属性“状态”。
我想要做的是假设正在播放一首歌,当用户点击另一首歌的播放按钮时,我希望得到上一首歌的播放时间,然后开始播放所点击的歌曲。
这是我的代码:
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);
无论我在哪里放置代码来获取当前时间,它都会响应上面给出的错误。
我做错了什么?我怎么能这样做?
答案 0 :(得分: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'/>");
}
});
});
答案 1 :(得分:1)
我知道确实是一个老问题,但我只需要你希望得到的答案并找到解决方案。
这可能是你想要的东西?
$("#jquery_jplayer_1").jPlayer()[0].childNodes[1].currentTime
如果没有,请在$(“#jquery_jplayer_1”)。jPlayer()[0] .childNodes中查找音频元素。但据我所知,那里应该只有两个元素 - img和audio。音频是第二个,这就是你做childNodes [1]的原因。
希望这有帮助