2011-12-10 5 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

申し訳ありません - はい、最初の実行時に行います。最初にnullをテストするコードを編集しました.. – Lloyd

+0

申し訳ありませんが、まだnull例外が発生します。お時間をいただきありがとうございます。 – crazyDiamond

0

私のjPlayer divは、Display:noneを実装したクラス内にありました。これによりjPlayerの再生、一時停止、停止のためのアクセス権が削除されます。

関連する問題