我试过了audio html tag,tonejs,audio web api,但我在android和PC的浏览器(chrome)上仍然有大约110ms的时间。
我看到有一个超级音频worlet ( JavaScript ()),但是我不知道是否可以在这个过程中播放样本
发布于 2020-05-29 07:21:12
是的,AudioWorklet的延迟将小于3ms (128个样本/48,000 to = 2.67ms),并且可以通过将解码的PCM样本发送到process()中的输出缓冲区来充当播放器。AudioWorklets在浏览器中不受广泛支持,因此AudioBuffer是一个很好的跨浏览器替代方案,并且工作得很好。
这个示例加载了一堆音频文件,并立即在它们之间切换播放:https://opus-bitrates.anthum.com
audio-player-worklet.js
class AudioPlayer extends AudioWorkletProcessor {
decodedAudio // Float32Array data to play (interleaved or separate)
constructor() {
super()
// set audio to play when received from main/worker thread
this.port.onmessage = ({ data: { decodedAudio } }) => {
this.decodedAudio = decodedAudio
}
}
process(inputs, outputs) {
if (this.decodedPCMAudio) {
// copy 128 samples from decodedAudio to outputs channels
}
// run process() again for next 128 samples
return true
}
}
registerProcessor('audio-player', AudioPlayer)https://stackoverflow.com/questions/61234451
复制相似问题