2013-03-02 3 views
1

Я хочу, чтобы получить текущее время песни, для которых я используюПолучить текущее время в jPlayer

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

, но я получаю и ошибка Uncaught TypeError: Не удается прочитать свойство «статус» неопределенных в консоли.

То, что я пытаюсь сделать, это предположить, что песня играет, и когда пользователь нажимает на playbutton другой песни, я хочу получить время, отведенное предыдущей песне, а затем начать играть по нажатой песне.

Вот мой код:

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); 

Независимо от того, где я поставил код, чтобы получить текущее время, он реагирует с ошибкой приведенной выше ..

Что я делаю неправильно? как еще я могу это сделать?

ответ

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

Спасибо за ответ чувак .. Хотя это был не ответ, который я ожидал, я получил представление от него :) –

0

Я знаю, что сделал это старый вопрос, но я просто нужен один и тот же ответ, как вы, надеюсь, ожидающей и нашел решение.

Возможно, это именно то, что вы хотели?

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

Если нет, поиграйте в $ ("# jquery_jplayer_1"). JPlayer() [0] .childNodes найти элемент аудио. Но насколько я знаю, там должно быть только два элемента - img и audio. Аудио второе, поэтому вы делаете childNodes [1].

Надеется, что это помогает

Смежные вопросы