2

所以我有一个使用 Google 的Shaka 播放器播放视频的网络应用程序。它使用MediaSource API 流式传输音频和视频片段。

我想对我的音轨的原始 PCM 数据进行一些音频处理。我看到它以 .mp4 格式获取音频片段,然后以 ArrayBuffer 的形式将它们附加到 SourceBuffer,然后将其附加到 MediaSource 并播放。有什么方法可以劫持这个流程,将数据解码为 PCM,进行一些处理,然后将处理后的 PCM 管道返回到 SourceBuffer?我看到有AudioContext.decodeAudioData API 用于将片段从 .mp4 获取到 PCM,但这会返回一个AudioBufferSourceNode和 AudioBuffer,它们不能附加到我的常规 SourceBuffer 中。有没有办法解决这个问题?

我想我可以将我的 PCM 数据重新编码回 .mp4,但这似乎是一种巨大的浪费。

4

1 回答 1

1

在 Chrome 64 中,您可以定义自己的AudioWorkletProcessor,并将其用于AudioWorkletNode实例化。

请参阅AudioWorklet 示例以获取更多参考。

于 2019-09-09T11:57:15.350 回答