Приложение iphone позволяет фоновой музыке продолжать играть

Когда я запускаю свою iPhone-игру, как только звук воспроизводит фоновую музыку или подкаст, который играет, останавливается. Я заметил, что другие игры позволяют воспроизводить фоновый звук.

Как это возможно? Нужно ли переопределять метод в приложении App Delegate?

Ответ 1

Поместите эту строку в свой application:didFinishLaunchingWithOptions: метод вашего AppDelegate или вообще перед использованием аудиоплеера.

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];

Согласно документации, категория AVAudioSessionCategoryAmbient -

для приложения, в котором воспроизведение звука не является первичным, т.е. ваше приложение может быть успешно использовано при выключенном звуке.

Эта категория также подходит для приложений "поиграть", таких как виртуальное пианино, которое пользователь воспроизводит через аудио iPod. Когда вы используете эту категорию, звук из других приложений смешивается с вашим аудио. Ваш звук отключается блокировкой экрана и переключателем Silent (называемым переключателем Ring/Silent на iPhone).

Если вы хотите также гарантировать, что ошибка не возникла, вам нужно проверить возвращаемое значение

NSError *error;
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
if (!success) {
     //Handle error
     NSLog(@"%@", [error localizedDescription]);
} else {
   // Yay! It worked!      
}

В качестве заключительного замечания не забудьте связать структуру AVFoundation с вашим проектом и импортировать его.

#import <AVFoundation/AVFoundation.h>

Ответ 2

Кто-нибудь знает, как сделать это для приложений Android?