使用 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 音乐的主要内容,如果未能解决你的问题,请参考以下文章