BaseAudioContext: метод createChannelSplitter()
Базовая реализация Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с апреля 2021 года.
Метод createChannelSplitter() интерфейса BaseAudioContext используется для создания узла ChannelSplitterNode, который позволяет получить доступ к отдельным каналам аудиопотока и обрабатывать их по отдельности.
Примечание: Рекомендуемый способ создания ChannelSplitterNode() - использование конструктора ChannelSplitterNode; см. Создание AudioNode.
Синтаксис
createChannelSplitter(numberOfOutputs)
Параметры
numberOfOutputs-
Количество каналов в входном аудиопотоке, которые требуется вывести по отдельности; по умолчанию 6, если параметр не указан.
Возвращаемое значение
Узел ChannelSplitterNode.
Примеры
Следующий простой пример демонстрирует, как разделить стереодорожку (например, музыкальный фрагмент) и по-разному обработать левый и правый каналы. Для этого необходимо использовать второй и третий параметры метода AudioNode.connect(AudioNode), которые позволяют указать индекс канала для подключения и индекс канала для подключения к нему.
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);
// Reduce the volume of the left channel only
const gainNode = ac.createGain();
gainNode.gain.setValueAtTime(0.5, ac.currentTime);
splitter.connect(gainNode, 0);
// Connect the splitter back to the second input of the merger: we
// effectively swap the channels, here, reversing the stereo image.
gainNode.connect(merger, 0, 1);
splitter.connect(merger, 1, 0);
const dest = ac.createMediaStreamDestination();
// Because we have used a ChannelMergerNode, we now have a stereo
// MediaStream we can use to pipe the Web Audio graph to WebRTC,
// MediaRecorder, etc.
merger.connect(dest);
});
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createChannelSplitter |
14 | 12 | 25 | 15 | 6 | 18 | 25 | 14 | 6 | 1.0 | 4.4.3 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createChannelSplitter