Продолжить воспроизведение звука, когда iPhone заблокирован - PullRequest
1 голос
/ 19 января 2012

Как я могу продолжить воспроизведение звука на iPhone, когда он автоматически блокируется или пользователь блокирует телефон?

Я уже пробовал

session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:NULL];

но это не похоже на работу.

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Я наконец понял, как это сделать!

Прежде всего, включите в ваш проект следующие фреймворки: AudioToolbox, CoreAudio, MediaPlayer и AVFoundation. Импортируйте их все в viewController, где будет размещен ваш плеер. После того, как вы распределили и начали воспроизводить аудио, введите следующий код:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory);
AudioSessionSetActive(true);

И, наконец, перейдите в файл Info.plist вашего приложения и добавьте строку с именем UIBackgroundModes. Новая строка будет массивом и будет содержать 1 элемент, элемент 0. Для этого вы просто установите значение как аудио. И вы сделали! Наслаждайтесь игрой в фоновом режиме!

0 голосов
/ 19 января 2012

Эта ссылка должна помочь.

Вам необходимо запретить приложению переходить в режим глубокого сна:

UInt32 category = kAudioSessionCategory_MediaPlayback;
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                                                                            sizeof(category), &category);

if (result){
    DebugLog(@"ERROR SETTING AUDIO CATEGORY!\n");
}

result = AudioSessionSetActive(true);
if (result) {
    DebugLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n");
}
...