Javascript 停止播放新音频
我想一次只播放一个音频,以响应某些鼠标事件。情况是在不同HTML元素上的onmouse over事件播放音频。当用户将鼠标从一个元素快速移动到另一个元素,并且两个元素都播放音频时,会产生噪音。在播放新音频之前,我想检查是否正在播放任何音频。我使用了以下代码:Javascript 停止播放新音频,javascript,html,Javascript,Html,我想一次只播放一个音频,以响应某些鼠标事件。情况是在不同HTML元素上的onmouse over事件播放音频。当用户将鼠标从一个元素快速移动到另一个元素,并且两个元素都播放音频时,会产生噪音。在播放新音频之前,我想检查是否正在播放任何音频。我使用了以下代码: var $audioAnno=0; function audioAnnotation(y){ var audio; if ($audioAnno==0){ $audioAnno=1; aud
var $audioAnno=0;
function audioAnnotation(y){
var audio;
if ($audioAnno==0){
$audioAnno=1;
audio = new Audio(y);
audio.play();
$audioAnno=0;
}
}
var $audioAnno=0;
function audioAnnotation(x, y){
var audio = new Audio(y);
if ($audioAnno==0){
$audioAnno = 1;
audio.play();
audio.addEventListener("ended", function(){ $audioAnno = 0; });
}
}
它不会停止播放第二个音频。我会这样做,保持一个标志canPlay和on mouse事件,如果为true,则播放
canPlay = true;
var es = document.getElementsByTagName('audio'), audios=[];
for(var i=0;i<es.length;i++) audios.push(es[i]);
audios.forEach(function(e){
e.addEventListener('play', function(){
canPlay= false;
});
e.addEventListener('ended', function(){
canPlay= true;
});
});
// later on some mouseEvent based on some condition
function onMouseEvent(audioElement){
if(canPlay){
audioElement.play();
}
};
谢谢大家
我可以解决这个问题。我使用了以下代码:
var $audioAnno=0;
function audioAnnotation(y){
var audio;
if ($audioAnno==0){
$audioAnno=1;
audio = new Audio(y);
audio.play();
$audioAnno=0;
}
}
var $audioAnno=0;
function audioAnnotation(x, y){
var audio = new Audio(y);
if ($audioAnno==0){
$audioAnno = 1;
audio.play();
audio.addEventListener("ended", function(){ $audioAnno = 0; });
}
}
感谢莫迪的快速回复。我偶尔是一名JavaScript开发人员。所以不是很熟悉所有的功能。我正在使用JavaScript音频对象。我没有使用HTML音频标签。在这种情况下,我如何应用你的概念。