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

Posted

技术标签:

【中文标题】使用 AVAudioPlayer 在后台播放声音而不停止 ipod 音乐【英文标题】:Play sound in background using AVAudioPlayer without stopping ipod music 【发布时间】:2013-05-29 11:35:03 【问题描述】:

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

现在我希望即使应用在后台中也能播放此声音。所以我可以通过将AVAudiosession 类别设置为AVAudioSessionCategoryPlayback 来实现这一点,我还希望这个声音不应该停止ipod 音乐,我可以通过设置AVAudioPlayer 类别AVAudioSessionCategoryAmbient 来做到这一点。

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

那么我该如何实现呢?

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

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

谢谢。

【问题讨论】:

请看这个:-***.com/questions/7619794/… 如果不停止 iPod 音乐(或任何其他后台播放应用程序),您将无法进行后台播放。 @Unnati 请问您是否找到了解决方案?我也有类似的要求。谢谢。 【参考方案1】:

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

并将以下代码放入您的项目 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 的系统声音。

请参考以下链接:-

iPhone AVAudioPlayer stopping background music

请查看下面的链接,那里有在后台播放音频文件的演示。请检查一下

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

【讨论】:

您不能同时运行 AVAudioPlayer 和 iPod 播放器或 MPMusicPlayer 或 MPMoviePlayer,

以上是关于使用 AVAudioPlayer 在后台播放声音而不停止 ipod 音乐的主要内容,如果未能解决你的问题,请参考以下文章

iOS 实现后台 播放音乐声音 AVAudioPlayer

使用 AVAudioPlayer 相互播放的声音

UILocalNotification 中的声音在最大音量下比 AVAudioPlayer 响亮

使用 AVAudioPlayer 同时播放多个声音

Swift AVAudioPlayer 不播放声音

AudioQueueNewInput 降低 AVAudioPlayer 的播放音量