2010-11-19 3 views
4

Я разрабатываю приложение на iphone, которое использует MPMoviePlayerController для воспроизведения аудиофайла. Когда приложение переходит в фоновый режим, если mpmovieplayer играет, iphone продолжает воспроизводить текущую музыку, но когда он заканчивается, следующий трек не запускается.Проблема многозадачности MPMoviePlayerController

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

Возможно ли это на iOS 4.1 или это ограничение?

С наилучшими пожеланиями Samantha

ответ

2

Вы должны прочитать Technical Q&A QA1668: Как играть аудио в фоновом режиме с MPMoviePlayerController.

Резюме шагов необходимо:

  • заявляют, что приложение поддерживает выполнение фона для аудио
  • назначить соответствующую категорию аудио сессии (категория по умолчанию не ок)
+0

Спасибо за ответ, но я уже знаю, что Q & A, и я могу играть на самом деле медиа-файл, когда приложение находится в фоновом режиме. Моя проблема возникает, когда файл заканчивается, и мне нужно играть еще один, не возвращаясь к приложению. – Samantha

+0

Не могли бы вы дать более подробную информацию о том, что вы сделали. Может быть, какой-то код? Это поможет сократить поиск. – Guillaume

+0

@ Samantha: Вы получили решение этой проблемы. Пожалуйста, опубликуйте решение, если да, так как я тоже сталкиваюсь с тем же. – Yogi

2

I получил работу, поставив следующие две строки в файле делегирования:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 
+0

где вы это положили? это не работает для меня. –

+0

Обратите внимание, что это не работает на симуляторе, но на устройстве оно работает - меня смутило. – Andrew

+0

Блестящий, спасибо! Просто поместите линии в свой метод игры, импортируйте AVFoundation, и там вы идете. – brainray

0

может быть, вы забыли добавить это в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    } 
Смежные вопросы