Можно ли проверить симуляцию iOS4 / фоновую музыку на симуляторе? - PullRequest
9 голосов
/ 06 июля 2010

Я добавил свойство UIBackgroundModes в Info.plist для записи массива "audio" и добавил вызов для настройки аудио сеанса: [session setCategory: AVAudioSessionCategoryPlayback error: &error];.

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

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

Ответы [ 4 ]

18 голосов
/ 14 июля 2010

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

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioPlayer play];
16 голосов
/ 02 сентября 2010

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

2 голосов
/ 08 июля 2010

Добавил ли ты Обязательный ключ режима фона в info.plist ... Если нет, попробуйте добавить это ... Перейдите в файл info.plist и нажмите кнопку «Добавить», чтобы добавить «Требуемые фоновые режимы», щелкните маленький треугольник, и вы получите item0, в котором добавлено «Приложение воспроизводит звук» ... Это прекрасно работает ...

~ Raviraja

1 голос
/ 18 июля 2010

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

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];
...