У меня есть приложение, которое выполняет довольно стандартную операцию: Оно воспроизводит звук (в потоковом режиме или в файловой системе), когда приложение находится в 1) режиме переднего плана, 2) состоянии блокировки экрана 3) фоновом режиме. Это нормально работало во всех iOS до iOS5.
Я использую MPMoviePlayerController (потому что он может воспроизводить потоковое аудио и аудио из локальной файловой системы) У меня следующие настройки:
У меня есть Настройте аудиосессию, как показано на http://developer.apple.com / library / ios / # qa / qa1668 / _index.html
NSError * ActivationError = nil;
AVAudioSession * mySession = [AVAudioSession sharedInstance];
[mySession setCategory: AVAudioSessionCategoryPlayback error: & activationEression error ];
if (activateError) {/ * обработать условие ошибки * /}
[mySession setActive: YES error: & activationError];
if (activateError) {/ * обработать условие ошибки * /}
У меня включен фоновый таймер, который останавливается в конце воспроизведения звука UIBackgroundTaskIdentifier newId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: NULL];
При этом начинает воспроизводиться звук, и когда приложение переводится в фоновое состояние или если телефон заблокирован, звук продолжает воспроизводиться.Но после того, как я запустил другой аудиофайл, я сразу же начинаю получать PlaybackDidFinishNotification с состоянием, установленным на Воспроизведение завершено (но файл никогда не воспроизводился)
Тот же код воспроизводит аудиофайлы в режиме переднего плана (после текущий аудиофайл заканчивается, следующий файл запускается без проблем)
Есть ли что-нибудь новое в iOS5, что я должен сделать, чтобы это заработало? Я прочитал ссылку на класс MPMoviePlayerController и не нашел ничего особенного для iOS5.
Заранее спасибо.