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