使用AVAudioPlayer在后台播放声音而不停止ipod音乐

时间:2013-05-29 11:35:03

标签: iphone ios avaudioplayer avaudiosession

在我的应用程序中,在特定时间,我正在使用AVAudioPlayer使用哔声提醒用户。

现在我希望即使应用处于背景时也能播放此声音。所以我可以通过将AVAudioSession类别设置为AVAudioSessionCategoryPlayback来实现这一点,我也希望这个声音不应该停止ipod音乐,我可以设置AVAudioPlayer类别{{1} }。

但我希望他们在一起意味着声音也应该在后台播放,它也不应该停止ipod音乐。

那么我怎样才能做到这一点?

如果无法在后台播放AVAudioSessionCategoryAmbient类别的声音,那么还有其他解决方法吗?

如果我犯了任何错误,请道歉。

感谢。

1 个答案:

答案 0 :(得分:4)

你需要在project.plist文件Required background modes中添加一行,如下图所示并设置它。

enter image description here

并将以下代码放入您的项目appdelegate didFinishLaunchingWithOptions

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    NSError *error;
    BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
    if (!success) {
        //Handle error
        NSLog(@"%@", [error localizedDescription]);
              } else {
                  // Yay! It worked!
              }

它为我工作希望它对你有用,我最好的。

<强>更新

您无法同时运行AVAudioPlayer和iPod播放器或MPMusicPlayer或MPMoviePlayer,无需多做多少工作。如果您想要简单,请使用Audio Toolbox的System Sounds。

请参考以下链接: -

iPhone AVAudioPlayer stopping background music

请检查以下链接有在后台播放音频文件的演示。请检查

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_background-audio/