iPod - 让原生音乐应用在后台播放声音

时间:2011-01-08 18:39:08

标签: background audio ipod avplayer

我正在为iPod构建应用程序。 运行时,原生iPod音乐应用程序应继续在后台播放,但这种情况不会发生。

我认为它可能与我的应用播放的声音有关。为了在某​​一点播放短音,我正在使用AVAudioPlayer。代码如下所示:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
        NSLog(@"%@", path);
        player = [[AVAudioPlayer alloc] initWithData:[NSData dataWithContentsOfFile:path] error:nil];
        [player prepareToPlay];
        [player play];

这会干扰iPod上的原生音乐播放器吗? 另一件事。在我的应用程序中,我集成了AdWhirl,它似乎使用了AudioToolbox。

非常感谢, 乔治

1 个答案:

答案 0 :(得分:1)

您必须将AVAudioSession设置为使用Ambient类别。这告诉系统您的声音应该与任何已播放的声音混合。在iOS 4中执行此操作的最佳方法是在app委托中,如下所示:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    // ...
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // reactivate audio session
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
}

阅读音频会话。如果您的应用产生声音,总是想要意识到并控制您的音频会话。