2010-07-06 3 views
9

Я добавил свойство UIBackgroundModes в Info.plist, чтобы иметь запись в массиве «audio» и добавили вызов для настройки сеанса аудио: [session setCategory: AVAudioSessionCategoryPlayback error: &error];.Можно ли тестировать многозадачность iOS4/фоновую музыку на симуляторе?

Однако единственное тестовое устройство, которое у меня есть, - это iPod Touch 2G, который не поддерживает многозадачность. Я пробовал симулятор, но музыка перестает играть, когда я переключаюсь на Safari. Но когда я переключаюсь обратно в свое приложение, песня продолжает играть в более удаленном месте, чем когда я покинул приложение.

Кажется, что он продолжал играть в фоновом режиме, но я не слышал звук моего приложения, используя другое приложение (Safari).

+0

Я также хочу знать. если мы сможем проверить многозадачность в симуляторе или нет с обновлением значка apns – harshalb

ответ

18

у меня тоже была такая же проблема. В симуляторе звук приостанавливается, и когда вы запускаете его обратно, он возобновляет воспроизведение. Но тестирование на устройстве работало отлично, и звук продолжал играть в фоновом режиме. Код примера, который я использовал, -

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[audioPlayer play]; 
+0

Я видел такое же поведение. Код, который работает на iPhone 4, будет незаметно продвигаться в симуляторе. – drawnonward

+0

Я хочу упомянуть, что это также работает с классом AVPlayer, который поддерживает потоковое вещание. Настройка категории позволит приложению аудиопотока продолжить воспроизведение, когда устройство блокируется или приложение приостановлено. Очень полезно. –

+0

Мне пришлось редактировать MyApp-info.plist, чтобы заставить его работать. Подробнее см. Здесь http://www.crocodella.com.br/2011/01/using-avplayer-to-play-background-music-from-library/ –

2

Был ли добавлен требуемый задний режим в файле info.plist ... Если вы не попробуете добавить это ... Загрузите файл info.plist и нажмите «Добавить», чтобы добавить «Требуемые режимы на заднем плане», нажмите небольшой треугольник и и получите item0 в том, что добавить «App Воспроизведение аудио» ... Это прекрасно работает ...

~ Raviraja

+0

Да, я упомянул об этом в своем вопросе. У вас будет пример проектов, которые я могу запустить на моем симуляторе, который содержит правильную настройку? Благодарю. –

1

Это работало даже на устройстве для меня.

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[audioPlayer play]; 

Это и установка info.plist ключ, чтобы включить фоновый звук является то, что необходимо для того, чтобы фоновый звук, играя в приложение iPhone. Тем не менее, если вы хотите воспроизвести последовательность звуковых файлов, то можно было бы необходимо для выполнения каждой операции воспроизведения в качестве фоновой задачи, как это:

UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil]; 

Выполните необходимые операции:

[[UIApplication sharedApplication] endBackgroundTask:bgTask]; 
16

фон аудио не поддерживается в симуляторе iPhone. Источник: WWDC 2010, сессия 109 - Принятие многозадачной части 2.