我正在编写一个在后台循环的小程序,并在满足某个条件时播放mp3播放器(通过php脚本检查)。
这是script.js:
$(document).ready(function(){
setInterval(function(){
$.get("airhorn.php", function(data) {
if(data == 1){
//play sound
}
});
},5000); //5 seconds
});
现在airhorn.php
始终返回1。
如何设置它以使浏览器播放mp3(例如“airhorn.mp3”),其中显示“播放声音”?
我一直试图让jPlayer工作,但我正在努力。
例如,我尝试过:
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer("setMedia", mp3: "http://www.site.com/airhorn.mpp3");
setInterval(function(){
$.get("airhorn.php", function(data) {
if(data == 1){
$("#jquery_jplayer_1").jPlayer("play");//play sound
}
});
},5000); //5 seconds
});
修改
解决方案是将循环置于jplayer ready事件中:
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer( {
ready: function () {
$(this).jPlayer("setMedia", {
mp3: "http://www.jplayer.org/audio/mp3/Miaow-snip-Stirring-of-a-fool.mp3" // Defines the mp3 url
})
setInterval(function(){
$.get("airhorn.php", function(data) {
if(data == 1){
alert("should play")
$("#jquery_jplayer_1").jPlayer("play"); //play sound
}
});
},5000); //5 seconds
},
supplied: "mp3",
swfPath: "jPlayer/js"
});
});
答案 0 :(得分:0)
这次正确答案... jPlayer准备就绪后需要进行配置。它在ready配置属性中使用回调。这就是你设置它的方式......
$(document).ready(function() {
$("#jquery_jplayer_1").jPlayer({
ready: function(event) {
$(this).jPlayer("setMedia", {
mp3: "http://jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3",
oga: "http://jplayer.org/audio/ogg/TSP-01-Cro_magnon_man.ogg"
});
},
swfPath: "http://jplayer.org/latest/js",
supplied: "mp3, oga"
});
});
以下是官方工作示例: http://jsfiddle.net/jPlayer/XLNCY/
循环工作的原因是因为它不断尝试并最终准备就绪。持续重试的问题是你永远不会停止尝试打你的服务器。这就像是一次自我造成的DOS攻击。
希望这可以清理它。干杯!
答案 1 :(得分:0)
$(document).ready(function() {
$("#jquery_jplayer_1").jPlayer({
ready: function(event) {
$(this).jPlayer("setMedia", {
mp3: "http://jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3",
oga: "http://jplayer.org/audio/ogg/TSP-01-Cro_magnon_man.ogg"
});
},
swfPath: "http://jplayer.org/latest/js",
supplied: "mp3, oga"
});
});