MPMoviePlayerController не будет проигрываться во время блокировки экрана в ios5 - PullRequest
1 голос
/ 25 октября 2011

Мое приложение использовало MPMoviePlayerController для воспроизведения подкастов.В ios4 я смог обойти экран блокировки, остановив воспроизведение подкастов, с помощью следующего кода:

OSStatus audioInitStat = AudioSessionInitialize (NULL,NULL,NULL,NULL);
if (audioInitStat != kAudioSessionNoError) {
    printf("AudioSession Failed to Initialize\n");
}
else {
    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
    audioInitStat = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,    sizeof(sessionCategory), &sessionCategory);
}

Возможно, это была глупая удача, что это работало раньше, но факт в том, что теперь сВнедрение ios5, проигрыватель фильмов останавливается с блокировкой экрана, когда это было не в ios4.Кто-нибудь знает, как разрешить проигрывателю фильма играть во время блокировки экрана.Я не хочу использовать:

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];

, потому что это просто убьет батарею (то есть я хочу позволить экрану тускнеть).Любые идеи будут наиболее ценными.Если я не могу использовать проигрыватель фильмов, знаете ли вы, могу ли я использовать другие аудио возможности ios для воспроизведения подкастов?

Ответы [ 2 ]

1 голос
/ 07 января 2012

В iOS 5.x вам нужно установить два ключа в вашем файле info.plist.

Сначала добавьте строку в файл с помощью ключа "UIApplicationExitsOnSuspend", сделайте значение логическим и установите его в "НЕТ "

Затем добавьте строку с ключом с именем" UIBackgroundModes "
Это будет массив, и вы хотите, чтобы первый элемент имел значение" audio "

Вы также можетеВы хотите установить аудио-сеанс на AVAudioSessionCategoryPlayback для хорошей меры:

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

Это будет работать для аудио-файлов, воспроизводимых с использованием MPMoviePlayerController, но не для видео.

0 голосов
/ 26 октября 2011

После долгих раскопок я нашел частичное решение:

Перейдите в список info.plist для своего приложения.

Добавьте ключ «Необходимые фоновые режимы» и установите значение «Приложение воспроизводит звук». Добавьте ключ «Приложение работает в фоновом режиме» и установите значение «ДА»

Понятия не имею, где это задокументировано, но это работает.

Это только частичное решение. При этом звук может воспроизводиться в фоновом режиме, но вы не можете нажать кнопку «Домой» для доступа к другим приложениям. Приложение будет остановлено при нажатии кнопки «Домой».

...