AVAudioPlayer - Снижение частоты кадров
-
06-07-2019 - |
Вопрос
У меня есть небольшой вопрос:Я загружаю mp3-файл в объект NSData, а затем воспроизводю его, используя AVAudioPlayer в моей игре.Примерно каждую секунду частота кадров падает, и вы можете видеть заикание на экране.Это не является серьезным замедлением, но явно заметно и нарушает игровой процесс.Если музыкальная дорожка не воспроизводится с помощью AVAudioPlayer, это вообще не приводит к замедлению.
Как я могу предотвратить это?
Спасибо.
Флориан
Решение
Для дальнейшего использования, вот решение:
Установка категории аудиосессии на kAudioSessionCategory_AmbientSound (для одновременного воспроизведения музыки с iPod) каким-то образом отключает аппаратное ускорение MP3.Установка категории аудио в kAudioSessionCategory_SoloAmbientSound исправляет это, но не позволяет воспроизводить iPod.Теперь я устанавливаю категорию аудиосессии в зависимости от того, включена или отключена фоновая музыка для одновременного воспроизведения с iPod.
Другие советы
mp3 - это закодированный / сжатый аудиоформат.Вы можете попробовать либо уменьшить частоту дискретизации (например, вместо 128 кбит / с попробуйте 64 кбит / с), либо переключиться на некодированный формат, такой как linear pcm.Минусы заключаются в следующем:более низкое качество звука в первом случае, более высокий размер файла во втором.Но это может помочь улучшить общую производительность вашего приложения.