创建音频元素,播放它,然后删除元素
Create audio element, play it, and then remove element
我想在单击按钮时创建一个音频元素,播放音频,然后在播放完毕后删除音频
这是我的代码:
var x = document.getElementById("myAudio");
function playAudio() {
x.play();
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
如果您注意到,当您单击该按钮时,它会播放音频,您必须等待几秒钟才能再次单击它。我想要它,这样你就可以一直点击按钮,音频就会播放。
我想要的代码的一个完美示例是这个站点:https://airhorner.com/
继续点击气喇叭,它会创建一个音频元素并播放它
我从您发布的 link 中了解到,您希望在单击按钮时从头开始重播音频。您可以通过将音频的 currentTime
设置为 0,然后播放音频来实现:
var x = document.getElementById("myAudio");
function playAudio() {
x.currentTime = 0;
x.play();
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
问题是音频文件包含大量几乎听不见的尾随空白 space:
var x = document.getElementById("myAudio");
function playAudio() {
x.play();
}
x.onended = () => console.log('ended');
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
除了将时间重置为 0 之外,您还可以在音频结束前强制 .pause
音频:
var x = document.getElementById("myAudio");
function playAudio() {
x.play();
setTimeout(() => {
x.pause();
x.currentTime = 0;
}, 1500);
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
播放之前,您只需重置音频运行时间:
var x = document.getElementById("myAudio");
function playAudio() {
x.pause();
x.currentTime = 0;
x.play();
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
我想在单击按钮时创建一个音频元素,播放音频,然后在播放完毕后删除音频 这是我的代码:
var x = document.getElementById("myAudio");
function playAudio() {
x.play();
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
如果您注意到,当您单击该按钮时,它会播放音频,您必须等待几秒钟才能再次单击它。我想要它,这样你就可以一直点击按钮,音频就会播放。
我想要的代码的一个完美示例是这个站点:https://airhorner.com/
继续点击气喇叭,它会创建一个音频元素并播放它
我从您发布的 link 中了解到,您希望在单击按钮时从头开始重播音频。您可以通过将音频的 currentTime
设置为 0,然后播放音频来实现:
var x = document.getElementById("myAudio");
function playAudio() {
x.currentTime = 0;
x.play();
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
问题是音频文件包含大量几乎听不见的尾随空白 space:
var x = document.getElementById("myAudio");
function playAudio() {
x.play();
}
x.onended = () => console.log('ended');
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
除了将时间重置为 0 之外,您还可以在音频结束前强制 .pause
音频:
var x = document.getElementById("myAudio");
function playAudio() {
x.play();
setTimeout(() => {
x.pause();
x.currentTime = 0;
}, 1500);
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>
播放之前,您只需重置音频运行时间:
var x = document.getElementById("myAudio");
function playAudio() {
x.pause();
x.currentTime = 0;
x.play();
}
<audio id="myAudio">
<source src="https://padlet-uploads.storage.googleapis.com/446844750/ca57ed6d83fff9890b4c9f2356e4e0c0/Single_Firework___Sound_Effect_HD__1_.mp3" type="audio/ogg">
</audio>
<button onclick="playAudio()" type="button">Play Audio</button>