【发布时间】:2016-05-18 06:10:54
【问题描述】:
让我从一个事实开始,我对 Web 开发游戏还很陌生,并且一两个多星期几乎没有使用过 socket.io。我尝试播放从 socket.io 接收的 ArrayBuffer 中的音频,对应于使用 Web Audio API 传输的 MP3 文件。 ArrayBuffer 被 WebAudio 成功解码,但我遇到的唯一问题是在收到 ArrayBuffer 的初始块后大约需要 10 秒才能开始播放这首歌。
我的理解是它等待整个文件流式传输然后开始播放?有没有更好的方法在第一组块到达后立即播放曲目?
这是我目前的使用方式:
socket.on('browser:buffer', function(data) {
console.log(data.buffer);
source = audioContext.createBufferSource();
audioContext.decodeAudioData(data.buffer, function(decodedData) {
source.buffer = decodedData;
source.connect(audioContext.destination);
source.loop = true;
source.connect(audioContext.destination);
source.start(0);
});
}, function(error) {
console.error("decodeAudioData error", error);
});
【问题讨论】:
标签: javascript websocket socket.io web-audio-api