【问题标题】:How to get seperate channels in web audio api from <video>?如何从 <video> 获取网络音频 api 中的单独频道?
【发布时间】:2020-10-20 22:44:45
【问题描述】:

我正在尝试获取单独的音频表单 html 元素(文件为 mp4 格式)。文件有 6 通道音频,我想分别在每个通道上使用 PannerNode。

到目前为止,我能够从文件创建 AudioNode,但我不知道如何获取单独的通道以供以后在 PannerNode 中使用。

   var context = new (window.AudioContext || window.webkitAudioContext)();

   var source = context.createMediaElementSource(video);

我知道可以使用 XMLHttpRequest 来获取 arraybuffer,然后使用 decodeAudioData,但我在测试时遇到了问题。如果可能的话,最好从 HTML 视频元素中获取一个文件。

【问题讨论】:

    标签: javascript web-audio-api


    【解决方案1】:

    MediaElementAudioSourceNode 的规范表明该节点将包含视频源的音频部分。要获取各个频道,请使用ChannelSplitterNode。例如,

    let splitter = new ChannelSplitterNode(context, {numberOfOutputs: 6});
    source.connect(splitter);
    

    现在splitter 有 6 个单独的输出,一个用于源中的每个通道。您现在可以根据需要处理各个渠道。

    【讨论】:

      猜你喜欢
      • 2022-12-22
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 2017-04-13
      • 2014-04-16
      • 1970-01-01
      相关资源
      最近更新 更多