2011-12-10 3 views
2

우리 사용자는 IE7을 사용하고 운영자에게 경고 메시지가 표시되면 소리를 재생해야합니다.페이지 재로드없이 jPlayer를 다시 재생하십시오.

페이지가로드 될 때 디스패처가 페이지를 열어두고 이전에 메시지를 수신하고 응답 한 경우에는 정상적으로 작동합니다. 새 메시지가 수신되면 사운드가 작동하지 않는 것 같습니다.

jPlayer를 잘못 사용하면 어떻게됩니까? 메시지가있는 한 지속적으로 사운드를 재생하고 싶습니다.

내 Ajax 호출

$.ajax({ 
    type: "POST", 
    url: "/Messages/ViewMessages.aspx/GetMessages", 
    data: "{messageId:" + 45 + "}", 
    contentType: "application/json; charset=utf-8", 
    cache: false, 
    dataType: "json", 
    timeout: 60000, 
    success: function(data) { 
     if (data.d.length > 0) { 
      showPanic(data.d); 
      var sound = "/JavaScript/jQuery/UI/js/Audio/Air Plane Ding-SoundBible.com496729130.mp3"; 
    playSound(sound); 
     } 
     else { 
      $("#dialog").dialog("destroy"); 
     } 

    } 

function playSound(sound) { 
      $("#jquery_jplayer_1").jPlayer({ 
       ready: function() { 
        $(this).jPlayer("setMedia", { 
         mp3: sound 
        }).jPlayer("play"); 
       }, 
       loop: true, 
       swfPath: "/JavaScript/jQuery/UI/js/jQuery.jPlayer.2.1.0/Jplayer.swf", 
       supplied: "mp3" 
      }); 
      $("#jquery_jplayer_1").jPlayer("play");} 

답변

3

것은 playSound에서이 변화를 시도합니다. Click here to run the code in jsFiddle.

function playSound(sound) { 
    var $player = $("#jquery_jplayer_1"); 
    if ($player.data().jPlayer && $player.data().jPlayer.internal.ready === true) { 
     $player.jPlayer("setMedia", { 
      mp3: sound 
     }).jPlayer("play"); 
    } 
    else { 
     $player.jPlayer({ 
      ready: function() { 
       $(this).jPlayer("setMedia", { 
        mp3: sound 
       }).jPlayer("play"); 
      }, 
      loop: true, 
      swfPath: "/JavaScript/jQuery/UI/js/jQuery.jPlayer.2.1.0/Jplayer.swf", 
      supplied: "mp3" 
     }); 
    } 
} 
+0

이렇게하면 $ ("# jquery_jplayer_1"). data(). jPlayer.internal.ready === true에 null 예외가 발생합니다. 생각해 줘서 고마워. 나는이 아이디어를 따라 멈추고 놀려고 노력하고있다. – crazyDiamond

+0

죄송합니다 - 예, 처음 실행했을 때 .. 나는 처음에 널 테스트를 위해 코드를 편집했습니다 .. – Lloyd

+0

미안하지만, 여전히 null 예외가 있습니다. 도움을 주셔서 감사합니다. – crazyDiamond

0

내 jPlayer div는 Display : none을 구현 한 클래스 내에있었습니다. 그러면 jPlayer의 재생, 일시 중지, 정지 기능에 대한 액세스가 제거됩니다.

관련 문제