gpt4 book ai didi

javascript - html 音频标签,加载时播放

转载 作者:行者123 更新时间:2023-11-27 23:21:00 24 4
gpt4 key购买 nike

我有一个音频标签

<audio id="soundContainer" preload="metadata" loop></audio>

我从 javascript 加载源代码,效果很好
但来源是歌曲,这意味着它们有 5+mb
并且它们仅在完全加载(下载)后才开始播放

document.getElementById("soundContainer").setAttribute('src', _path );
document.getElementById("soundContainer").load();
document.getElementById("soundContainer").play();

我需要帮助。
有没有办法在加载时/加载时播放音频
希望我能公平地解释并提前致谢。

最佳答案

您实际上已经在加载时播放音频。一旦获得足够的数据,音频就会开始播放。尝试限制 Chrome 中的网络带宽并检查网络事件。

如果您想消除这一微小的延迟,您只需使用两个声音容器即可。一个用于播放,另一个用于预加载内容。请记住,当前正在播放的音频容器在播放时仍会下载音频数据并消耗网络带宽。

<html>
<script>
var currentSound = 0;
var sounds = [
"one.mp3",
"two.mp3",
"three.mp3"
]

function switchAudio() {
var notPlaying = document.querySelector("audio:not(.playing)");
var nowPlaying = document.querySelector("audio.playing");
if(nowPlaying!==null) {
nowPlaying.pause();
nowPlaying.className="";
}
notPlaying.className="playing";
notPlaying.play();
}

function nextTrack() {
var notPlaying = document.querySelector("audio:not(.playing)");
notPlaying.setAttribute('src', sounds[currentSound]);
currentSound=(currentSound + 1) % sounds.length;
notPlaying.load();
notPlaying.oncanplay = switchAudio;
}

</script>
<body>
<audio preload="metadata" loop></audio>
<audio preload="metadata" loop></audio>
<button type="button" onclick="nextTrack()">next track</button>

</body>
</html>

关于javascript - html 音频标签,加载时播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35362886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com