AVAudioPlayer не будет воспроизводиться, когда устройство заблокировано - PullRequest
1 голос
/ 29 июня 2011

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

Ответы [ 3 ]

3 голосов
/ 29 июня 2011

Вам нужно прочитать Выполнение кода в фоновом режиме в документации Apple. Если вы установите UIBackgroundModes в вашем приложении на Info.plist на audio, звук будет воспроизводиться в фоновом режиме.

См. Разделы Объявление поддерживаемых фоновых задач и Воспроизведение фонового звука в вышеупомянутой документации.

0 голосов
/ 02 августа 2016

Все, что нужно для воспроизведения музыки в фоновом режиме с помощью AVAudioPlayer, за два шага:

Шаг 1: Выберите «Проект» -> «Возможности» -> «Включить фоновые режимы» -> «Выбрать режим аудио»

Шаг 2: Используйте этот код:

NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"demo" withExtension:@"mp3"];
avSound = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];
[avSound setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[avSound prepareToPlay];
[avSound setNumberOfLoops:-1];
[avSound setVolume:1.0]; 

Обратите внимание, что с этой строкой музыка может запускаться, даже если приложение было в фоновом режиме:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
0 голосов
/ 29 июня 2011

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

...