У меня есть стереофонический аудиофайл, для которого я пытаюсь разделить аудиоканалы. В результате получается шина с левым аудиосигналом и шина с правым аудиосигналом. На этих каналах я хочу сделать некоторые операции, а затем снова объединить их в один стереосигнал.
Чтение аудиофайла, выполнение операций на шине и объединение его в один сигнал не проблема (хотя я не проверял, является ли этот сигнал стереофоническим, так как, я думаю, это зависит от предыдущих каналов).
Моя проблема в том, чтобы разделить левый и правый канал, чтобы я мог самостоятельно их модифицировать.
Одна из моих идей состояла в том, чтобы использовать pan
свойство AVAudioPlayerNode
, чтобы сигнал был только левый/правый, но похоже (как указано в документации) это свойство еще не реализовано в AVAudioPlayerNode
(хотя во всех примерах WWDC видео используется).
Другое решение, которое я нашел, было это. Использование memcpy
для создания новых буферов. Я еще не пробовал это, так как думаю, что это занимает довольно много времени и не подходит для обычного игрока.
В-третьих, существует структура под названием audiokit. Это дает возможность преобразовать поток в монофонический левый/правый канал, а затем снова объединить сигнал, создав файл AKStereoOperation
. Моя проблема с этим решением заключается в том, что это довольно простой вариант использования. Разделение звуковых каналов. Для этого мне трудно оправдать включение такого огромного фреймворка, даже если он, вероятно, сработает (не тестировался).
Есть ли простой способ разделить каналы?
Спасибо!