iOS: AudioUnit текущего AVAudioPlayer

Я работаю над приложением, которое использует AVAudioPlayer для воспроизведения аудиофайла. Это работает нормально, но теперь я хочу добавить настройки эквалайзера.I получили все значения пресетов из этого кода

AudioUnitGetProperty(AudioUnit instance, kAudioUnitProperty_FactoryPresets, kAudioUnitScope_Global, 0, &mEQPresetsArray, &size);

Я могу изменить свойство аудиоустройства с помощью следующей строки

AUPreset *aPreset = (AUPreset*)CFArrayGetValueAtIndex(EQPresetsArray, 7);
AudioUnitSetProperty(AudioUnit instance, kAudioUnitProperty_PresentPreset, kAudioUnitScope_Global, 0, aPreset, sizeof(AUPreset));

Но проблема в том, что я не могу получить AudioUnit текущего экземпляра player/AVAudioPlayer.

Есть ли простое решение этой задачи?

Заранее спасибо!!!!


person GrayFox    schedule 30.09.2015    source источник
comment
Существует следующий метод: extern OSStatus AUGraphAddNode( AUGraph inGraph,const AudioComponentDescription * inDescription,AUNode * outNode) Чтобы добавить узел. Есть ли способ получить текущий узел?   -  person GrayFox    schedule 30.09.2015
comment
Единственный способ сделать это — не использовать AVAudioPlayer, а создать свой собственный аудиоплеер из ресурсов или программ чтения файлов и аудиоустройств.   -  person hotpaw2    schedule 30.09.2015
comment
Спасибо Николсон за ваш ответ. Но на самом деле я сделал со всеми функциями плеера с помощью AVAudioPlayer. Было бы очень полезно или сэкономить много времени, если бы мы получили текущий AUNode или AudioUnit.   -  person GrayFox    schedule 01.10.2015
comment
Можем ли мы применить значения пресетов settings›music›eq к моему приложению AVPlayer. Есть ли какие-либо настройки, которые мы должны установить в приложении?   -  person GrayFox    schedule 05.10.2015


Ответы (1)


Можно сделать шаг назад и использовать AVPlayer, а затем добавить MTAudioProcessingTap.Пример кода здесь

person soh-la    schedule 06.10.2015