我有几个长故事,其源音频是逐句的音频文件。我想创建一个网页,让人们可以多次听一段特定故事的单个句子,或从头到尾听整个故事。
首先,我的网页有很多
首先,我的网页有很多
当先前的音频完成时,您可以使用结束事件来播放下一个音频(通过JavaScript顺序播放HTML 5音频):
var sounds = new Array(new Audio("1.mp3"), new Audio("2.mp3"));
var i = -1;
playSnd();
function playSnd() {
i++;
if (i == sounds.length) return;
sounds[i].addEventListener('ended', playSnd);
sounds[i].play();
}
function playAudio(src) {
var audioElement = new Audio(src);
audioElement.play();
return audioElement
}
const sequences = ['./audio/person.m4a', './audio/4.m4a', './audio/5.m4a', './audio/6.m4a', './audio/6.m4a', './audio/6.m4a', './audio/room.m4a', './audio/3.m4a']
// play audio
let index = 0
const audioElement = playAudio(sequences[index])
audioElement.addEventListener('ended', (e) => {
index++
if (index < sequences.length) {
audioElement.src = sequences[index]
audioElement.play();
}
})
我使用JavaScript来解决问题,使用音频对象和setInterval。以下是一个示例:
var sndLetItSnow = new Audio("audio/letItSnow.m4a");
var sndSanta = new Audio("audio/snow.m4a");
var playlist = [sndLetItSnow, sndSanta];
var current = null;
var idx = 0;
function playSound() {
if (current === null || current.ended) {
// go to next
current = playlist[idx++];
// check if is the last of playlist and return to first
if (idx >= playlist.length)
idx = 0;
// return to begin
current.currentTime=0;
// play
current.play();
}
}
setInterval(playSound, 1000);
如需有关Audio对象的更多文档,请访问此页面:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement
希望这能帮到你!