AudioBuffer: copyFromChannel() 方法

Baseline 已廣泛支援

此特性已得到良好支援,可在多種裝置和瀏覽器版本上使用。自 2021 年 4 月起,所有瀏覽器均已支援此特性。

AudioBuffer 介面的 copyFromChannel() 方法將 AudioBuffer 指定通道的音訊樣本資料複製到一個指定的 Float32Array 中。

語法

js
copyFromChannel(destination, channelNumber, startInChannel)

引數

destination

一個用於複製通道樣本的 Float32Array

channelNumber

當前 AudioBuffer 中要從中複製通道資料的通道編號。

startInChannel 可選

一個可選的偏移量,表示從源通道的緩衝區中開始複製樣本的位置。如果未指定,則預設假定值為 0(緩衝區的開頭)。

返回值

無(undefined)。

異常

indexSizeError

其中一個輸入引數的值超出了可接受的範圍。

  • channelNumber 的值指定了一個不存在的通道號(即,它大於或等於該通道在 AudioBuffer 上的 numberOfChannels 的值)。
  • startInChannel 的值超出了源緩衝區中已存在樣本的當前範圍;也就是說,它大於其當前的 length

示例

此示例建立一個新的音訊緩衝區,然後將另一個通道的樣本複製到其中。

js
const myArrayBuffer = audioCtx.createBuffer(2, frameCount, audioCtx.sampleRate);
const anotherArray = new Float32Array(length);
myArrayBuffer.copyFromChannel(anotherArray, 1, 0);

規範

規範
Web Audio API
# dom-audiobuffer-copyfromchannel

瀏覽器相容性

另見