iPhone: воспроизводить звук, когда приложение переходит в фоновый режим - PullRequest
1 голос
/ 12 декабря 2011

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

- (void)applicationWillResignActive:(UIApplication *)application
{   
    NSError *error;
    NSURL *goodByeSoundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"GoodBye" ofType:@"wav"]];
    AVAudioPlayer *goodByeSound = [[AVAudioPlayer alloc] initWithContentsOfURL:goodByeSoundUrl error:&error];
    [goodByeSound play];
}

Этот код не будет работать на моем устройстве (iPhone 4 с iOS 5.0).Но это работает на симуляторе.Если я добавляю следующую строку в Info.plist, он воспроизводит звук, но на рабочем столе появляется красная полоса, указывающая, что приложение все еще активно в фоновом режиме.

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>

На самом деле это не такчто я хочу.Я просто хочу, чтобы звук воспроизводился, и мне не нужно, чтобы приложение было постоянно активным в фоновом режиме.

Есть ли решение этой проблемы?

Ответы [ 3 ]

1 голос
/ 12 декабря 2011

Добавьте эти три строки в ваш код: -

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
0 голосов
/ 12 декабря 2011

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

Добавление фонового режима не будет работать, поскольку это только для аудиоплееров.

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>
0 голосов
/ 12 декабря 2011

Вы пытались использовать - [UIApplication beginBackgroundTaskWithExpirationHandler:] ?

...