BaseAudioContext: phương thức createChannelSplitter()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Phương thức createChannelSplitter() của giao diện BaseAudioContext được dùng để tạo một ChannelSplitterNode, node này được dùng để truy cập từng kênh riêng lẻ của một luồng âm thanh và xử lý chúng riêng biệt.

Note: Hàm dựng ChannelSplitterNode() là cách được khuyến nghị để tạo một ChannelSplitterNode; xem Tạo một AudioNode.

Cú pháp

js
createChannelSplitter(numberOfOutputs)

Tham số

numberOfOutputs

Số kênh trong luồng âm thanh đầu vào mà bạn muốn xuất riêng rẽ; mặc định là 6 nếu tham số này không được chỉ định.

Giá trị trả về

Một ChannelSplitterNode.

Ví dụ

Ví dụ đơn giản sau cho thấy cách bạn có thể tách một track stereo (chẳng hạn một bản nhạc) và xử lý khác nhau cho kênh trái và kênh phải. Để dùng được chúng, bạn cần sử dụng tham số thứ hai và thứ ba của phương thức AudioNode.connect(AudioNode), cho phép bạn chỉ định chỉ mục của kênh nguồn để kết nối từ đó và chỉ mục của kênh đích để kết nối tới đó.

js
const ac = new AudioContext();
ac.decodeAudioData(someStereoBuffer, (data) => {
  const source = ac.createBufferSource();
  source.buffer = data;
  const splitter = ac.createChannelSplitter(2);
  source.connect(splitter);
  const merger = ac.createChannelMerger(2);

  // Chỉ giảm âm lượng của kênh trái
  const gainNode = ac.createGain();
  gainNode.gain.setValueAtTime(0.5, ac.currentTime);
  splitter.connect(gainNode, 0);

  // Kết nối splitter ngược lại vào đầu vào thứ hai của merger: ở đây
  // chúng ta thực chất đang hoán đổi các kênh, đảo ảnh stereo.
  gainNode.connect(merger, 0, 1);
  splitter.connect(merger, 1, 0);

  const dest = ac.createMediaStreamDestination();

  // Vì đã dùng ChannelMergerNode, giờ chúng ta có một MediaStream stereo
  // có thể dùng để đưa đồ thị Web Audio tới WebRTC,
  // MediaRecorder, v.v.
  merger.connect(dest);
});

Thông số kỹ thuật

Specification
Web Audio API
# dom-baseaudiocontext-createchannelsplitter

Khả năng tương thích với trình duyệt

Xem thêm