Ajax 使jPlayer在不重新加载页面的情况下再次播放
我们的用户使用IE7,如果有针对调度员的警报消息,我需要播放声音 当页面被加载时,这可以正常工作,但是如果调度器打开一个页面,并且之前已经收到并响应了消息。。。。然后,当收到新消息时,声音似乎不起作用 我在使用jPlayer时做错了什么?我只想一直播放声音,只要有信息 我的Ajax调用Ajax 使jPlayer在不重新加载页面的情况下再次播放,ajax,jplayer,Ajax,Jplayer,我们的用户使用IE7,如果有针对调度员的警报消息,我需要播放声音 当页面被加载时,这可以正常工作,但是如果调度器打开一个页面,并且之前已经收到并响应了消息。。。。然后,当收到新消息时,声音似乎不起作用 我在使用jPlayer时做错了什么?我只想一直播放声音,只要有信息 我的Ajax调用 $.ajax({ type: "POST", url: "/Messages/ViewMessages.aspx/GetMessages", data: "{messageId:" + 4
$.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");}
在
playSound
中尝试此更改
我的jPlayer div在一个实现Display:none的类中。这将删除对jPlayer的播放、暂停和停止功能的访问。这将在$(“#jquery_jPlayer_1”).data().jPlayer.internal.ready==true)处引发空异常。谢谢你的建议。我试着按照这个想法停下来玩。对不起-是的,第一次执行就可以了。。我首先编辑了测试null的代码。对不起,我仍然得到null异常。谢谢你花时间帮忙。对不起,兄弟,我应该正确测试我的代码。。我再次编辑了这篇文章,在小提琴上添加了一个链接,你可以自己运行和测试它。但问题在于IE7无法处理读取空对象的操作。此解决方案在其他浏览器中运行良好。
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"
});
}
}