我想在功能成功时播放警报声音,我正在运行多个类似的脚本
我尝试过的所有内容都会循环播放或在页面加载或重叠时播放 因为我所有脚本都使用相同的声音,所以我需要以某种方式停止播放,然后从头开始播放下一个...我真的可以在此上使用一些帮助
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
type="text/javascript" charset="utf-8"></script>
<script>
var audio = new Audio("audiosrc.mp3");
$(document).ready(function(){
sendRequest();
function sendRequest(){
$.ajax({
url: "vineri.php",
success:
function(data){
$('#listposts').html(data);
},
function playAudio() {
audio.pause();
audio.currentTime = 0;
audio.play();
},
complete: function() {
setTimeout(sendRequest, 5000);
}
});
};
});
</script>
</head>
<body>
<div id="listposts"> </div>
</body>
正如我所说的,我有许多类似的脚本,并且div正在页面上运行,我如何在complete:功能上为所有脚本播放audio.mp3,而不会重叠或在页面加载时播放。 我无法使用按钮,声音需要在ajax运行时播放,在脚本停止时停止播放
答案 0 :(得分:0)
可能有两件事:
解决方法如下:
//at the start of your script
var audio = new Audio("audiosrc.mp3");
var loadStatus = 0;
$( window ).on( "load", function() {
setTimeout(function(){loadStatus=1}, 2000);
})
function playAudio() {
if (loadStatus === 1) {//check page wasn’t just loaded
//make sure audio is reset
audio.pause();
audio.currentTime = 0;
//play
audio.play();
}
}
此外,如果尚未通过用户事件初始化safari,则不允许您运行声音。参见this question