Javascript Can';t设置音频流(套接字io流)上的currentTime

Javascript Can';t设置音频流(套接字io流)上的currentTime,javascript,node.js,socket.io,streaming,node-streams,Javascript,Node.js,Socket.io,Streaming,Node Streams,我正在使用socket io stream和node.js将音频文件从服务器传输到浏览器 它工作正常,但我想更改音频元素的currentTime属性。 我不确定,但似乎broswer在收到最后一个区块后无法播放,因此,例如,如果我告诉他将currentTime设置为60,它会将其设置为最后一个区块,大约为3或4(不知道如何解释) 我做错了什么?套接字io流事件是正确的工具吗?(我想是的,因为我只想设置当前时间) 谢谢 这是代码(来自) 服务器 var stream=wait ss.createS

我正在使用socket io stream和node.js将音频文件从服务器传输到浏览器

它工作正常,但我想更改音频元素的currentTime属性。
我不确定,但似乎broswer在收到最后一个区块后无法播放,因此,例如,如果我告诉他将currentTime设置为60,它会将其设置为最后一个区块,大约为3或4(不知道如何解释)

我做错了什么?套接字io流事件是正确的工具吗?(我想是的,因为我只想设置当前时间)

谢谢

这是代码(来自)

服务器

var stream=wait ss.createStream();
让电流_时间=60;
ss(套接字).emit(“发送音频”、流、当前时间);
createReadStream(somepath).pipe(stream);
客户端

ss(socket).on(“发送音频”,函数(流、数据){
//1.创建“MediaSource”`
var mediaSource=新的mediaSource();
//2.从“MediaSource”创建对象URL`
var url=url.createObjectURL(mediaSource,{type:“audio/mpeg”});
//3.将视频的'src'设置为对象URL
audio.src=url;
//4.在“sourceopen”事件上,创建一个“SourceBuffer”`
var sourceBuffer=null;
mediaSource.addEventListener(“sourceopen”,函数(){
sourceBuffer=mediaSource.addSourceBuffer(data.mime);
addEventListener(“updateend”,appendToSourceBuffer);
});
var arrayOfBlobs=[];
stream.on(“数据”,函数(块){
arrayOfBlobs.push(块);
appendToSourceBuffer();
});
//5.使用`SourceBuffer.appendBuffer()`将所有块添加到音频中
函数appendToSourceBuffer(){
如果(
mediaSource.readyState==“打开”&&
源缓冲区&&
sourceBuffer.updateing==false&&
arrayOfBlobs[0]!==未定义
) {
appendBuffer(arrayOfBlobs.shift());
}
音频播放();
audio.currentTime=data.current\u time;
}
});