Вопрос

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

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

Спасибо.

Флориан

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top