AVAudioPlayer - падение частоты кадров - PullRequest
3 голосов
/ 18 июня 2009

У меня быстрый вопрос: я загружаю mp3-файл в объект NSData, а затем играю его, используя AVAudioPlayer в моей игре. Каждую секунду или около того частота кадров падает, и вы можете увидеть заикание на экране. Это не серьезное замедление, но явно заметное и нарушающее игровой процесс. Отсутствие воспроизведения музыкальной дорожки с помощью AVAudioPlayer не показывает замедления вообще.

Как я могу предотвратить это?

Спасибо.

Florian

Ответы [ 2 ]

7 голосов
/ 18 июня 2009

Для дальнейшего использования вот решение:

Установка для категории аудиосеанса kAudioSessionCategory_AmbientSound (чтобы позволить iPod воспроизводить музыку одновременно) каким-то образом отключает аппаратное ускорение MP3. Установка категории аудио в kAudioSessionCategory_SoloAmbientSound исправляет это, но не позволяет воспроизводить iPod. Теперь я устанавливаю категорию аудиосеанса в зависимости от того, включена ли фоновая музыка или включена, чтобы можно было одновременно воспроизводить iPod.

0 голосов
/ 18 июня 2009

MP3 - это кодированный / сжатый аудиоформат. Вы можете попробовать либо уменьшить частоту дискретизации (для istance вместо 128 кбит / с, попробуйте 64 кбит / с), либо переключиться на некодированный формат, такой как линейный pcm. Минусы: более низкое качество звука в первом случае, более высокий размер файла во втором. Но это может помочь улучшить общие характеристики вашего приложения.

...