Jav*_*r S 2 javascript howler.js
我需要在 howler.js 中播放一些声音,但我不知道如何链接它。
例如,在字符串 BCG
需要先玩 b.ogg 然后是 c.ogg 最后是 g.ogg
如果我只是使用(加载后):
sound.play('b');
sound.play('c');
sound.play('g');
Run Code Online (Sandbox Code Playgroud)
所有这些都开始并重叠,这不是我需要的。
我看到有一个 onend 属性,但是无法弄清楚如何正确使用它。
问候。
您可以使用不需要精灵的代码(jsfiddle,Github问题):
var playlist = function(e) {
// initialisation:
pCount = 0;
playlistUrls = [
"https://upload.wikimedia.org/wikipedia/commons/8/8a/Zh-Beijing.ogg",
"https://upload.wikimedia.org/wikipedia/commons/8/8a/Zh-Beijing.ogg",
"./audio/a.mp3",
"./audio/b.mp3",
"./audio/c.mp3",
"./audio/d.mp3"
], // audio list
howlerBank = [],
loop = true;
// playing i+1 audio (= chaining audio files)
var onEnd = function(e) {
if (loop === true ) { pCount = (pCount + 1 !== howlerBank.length)? pCount + 1 : 0; }
else { pCount = pCount + 1; }
howlerBank[pCount].play();
};
// build up howlerBank:
playlistUrls.forEach(function(current, i) {
howlerBank.push(new Howl({ urls: [playlistUrls[i]], onend: onEnd, buffer: true }))
});
// initiate the whole :
howlerBank[0].play();
}
Run Code Online (Sandbox Code Playgroud)
如果您这样做,请分享您的变体。
小智 5
这是我的简单解决方案,我使用的是小文件,因此下载延迟不是问题。在这种情况下,声音是全局的
function play_audio(file_names) {
sound = new Howl({
src: [audio_url+file_names[0]],
volume: 0.5,
onend: function() {
file_names.shift();
if (file_names.length > 0) {
play_audio(file_names);
}
}
});
sound.play();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8702 次 |
| 最近记录: |