OGG Vorbis в iPhone SDK
Я хочу знать, возможно ли воспроизвести аудиофайл Ogg Vorbis с помощью iPhone SDK или существует библиотека или инфраструктура, которая позволяет это.
Я читал кое-что об OpenAL, но я не нахожу учебник... Кто-нибудь может мне помочь??
2 ответа
Лучше поздно, чем никогда;)
Я нашел ответ здесь Использовать cocos2d для воспроизведения файла ogg в моем проекте?,
PASoundMgr - это другой звуковой движок, поддерживающий воспроизведение файла ogg. Тем не менее, он не обновлялся с iOS 2.x, и с тех пор возникли многочисленные проблемы, которые он не решает.
Зачем вам проигрывать файлы ogg? Если вы преобразуете их в aac, вы сможете воспроизводить их, используя аппаратное декодирование, которое намного более эффективно с точки зрения использования процессора.
Они упомянули PASoundMgr. Это сработало для меня. Я просто скопировал из каркаса cocos2d все файлы-> библиотеки, на которых основан SoundEngineTest. И избавился от ненужного кода.
Вот мой демонстрационный проект, который показывает, как играть в ogg на ios.
Будьте осторожны с симуляторами iOS 5.*, у них есть некоторые проблемы со звуковой библиотекой. Моя демоверсия работает на симуляторе 4.3 и на устройстве.
Вот шаги, которые я сделал для создания демо:
Для начала вам понадобится каркас cocos2d-iphone. У меня уже было это, но вы можете найти его здесь cocos-2d_download.
Как вы можете заметить, SoundEngineTest зависит от libvorbis.a. Это библиотека, которая сделана из файлов из
external/Tremor
группа. Также это зависит от фреймворков OpenAl, AudioToolbox.Я скопировал все файлы из группы Tremor в мой проект. Создана "vorbis" Какао Touch Статическая библиотека, без ARC. И добавил все исходные файлы и заголовок к цели "vorbis" на вкладке " Фазы сборки ".
На этапах сборки OggPlayDemo Добавлены библиотеки (libvorbis, OpenAl, AudioToolbox) в поле " Связать двоичные файлы с библиотеками".
Добавлены классы PA в проект. И проверил OggPlayDemo в качестве цели. Чтобы избежать проблем с ARC, я отключил компиляцию ARC для этих 3 файлов PA. (см. отключение ARC для одного файла)
Удалены все ссылки на cocos2d. Был некоторый код, связанный с исправлением позиции слушателя в зависимости от ориентации... Я прокомментировал это. Мне не нужна эта функция только для воспроизведения звука.
Скопированный аудиофайл.
И, наконец, добавил этот код в ViewController:
- (void)viewDidLoad { [super viewDidLoad]; //init [PASoundMgr sharedSoundManager]; [[[PASoundMgr sharedSoundManager] listener] setPosition:CGPointMake(0, 0)]; self.audioSource = [[PASoundMgr sharedSoundManager] addSound:@"trance-loop" withExtension:@"ogg" position:CGPointMake(0, 0) looped:YES]; // lower music track volume and play it [self.audioSource setGain:0.5f]; } - (IBAction)play:(id)sender { [self.audioSource playAtListenerPosition]; }
Cricket Audio, в частности, будет воспроизводить ogg-файлы и работает на iOS/Android/WP8.