我正在为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。
非常感谢, 乔治
答案 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];
}
阅读音频会话。如果您的应用产生声音,总是想要意识到并控制您的音频会话。