2014-11-26 3 views
1

Мое приложение воспроизводит аудиофайлы с помощью AVAudioPlayer, и я использовал большинство своих методов и свойств для создания интерфейса управления воспроизведением с помощью кнопок для воспроизведения/паузы, поиска и т. Д. Теперь я хочу добавить функцию сдвига тона, используя новый AVAudioUnitTimePitch в iOS 8. Я нашел пример кода в this question, и он работает, когда я его запускаю, но он использует AVAudioPlayerNode вместо AVAudioPlayer.Могу ли я использовать старый AVAudioPlayer с новым AVAudioEngine?

Есть ли способ подключить AVAudioPlayer к AVAudioEngine вместо AVAudioPlayerNode? Или AVAudioPlayerNode полностью отличается от AVAudioPlayer, несмотря на их похожие имена?

Я спрашиваю, потому что, если мне придется заменить AVAudioPlayer на AVAudioPlayerNode, мне придется переработать большую часть моего интерфейса управления, чтобы использовать различные методы и свойства, доступные (или недоступные) в AVAudioPlayerNode.

+1

Да, они совершенно разные, и да, вы должны переделать свой интерфейс управления (если вы хотите использовать AVAudioEngine). Альтернатива заключается в том, чтобы делать шаг-сдвиг так, как мы это делали до того, как существовал AVAudioEngine ... – matt

+0

Я не знал о способе до-iOS 8. Можете ли вы поделиться ссылкой об этом? – arlomedia

+0

Вы хотите узнать о Core Audio и Audio Units. AVAudioEngine - это просто интерфейс для этого (действительно приятный интерфейс). – matt

ответ

3

Я работаю с этим в течение прошлой недели или двух. Моя цель состояла в создании проигрывателя AVAudioEngine, который имитирует функциональность AVAudioPlayer. Кажется, это работает очень хорошо. Проверьте это и сообщите мне, если вы найдете какую-либо помощь.

https://github.com/danielmj/AEAudioPlayer

0

AVAudioPlayer и AVAudioEngine различные способы работы с Audion на прошивкой. См. Следующую статью для полного списка аудио apis с короткими описаниями: Audio APIs Owerview