使用 AVAudioPlayer 播放声音后恢复背景音频

Posted

技术标签:

【中文标题】使用 AVAudioPlayer 播放声音后恢复背景音频【英文标题】:Resume Background Audio After Playing Sound With AVAudioPlayer 【发布时间】:2011-06-23 00:16:08 【问题描述】:

在我的应用程序使用 AVAudioPlayer 播放自己的声音后,我正在寻找一种方法来恢复另一个应用程序播放的音频。现在,如果我正在听音乐并启动我的应用程序,它会暂停音乐、播放我的声音,但不会恢复背景音乐。

这是我为生成声音播放所做的:

myChime = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"chime" ofType:@"mp3"]] error:nil];
myChime.delegate = self;
[myChime play];
// Here I am looking to resume the audio that the system was playing before my application played its sound.  I have seen many applications do this such as, GPS apps that speak a voice direction and then resume the music.

【问题讨论】:

许多应用程序,如 MotionX-GPS 将允许 iPod 播放背景音乐,直到出现画外音,然后它会停止音乐,播放“左转”声音,然后恢复 ipod 播放。我想知道在我的声音播放完毕后如何恢复之前的系统音频播放。 我也面临这个问题。你能在这里建议任何示例代码吗?提前致谢。 您能帮我解决这个问题吗?我花了两天时间?等待你的回复。请参阅我的问题供您参考:***.com/questions/12475034/… 真的我正在努力做你所做的事情。你能回应我的请求吗?请帮我。谢谢。 【参考方案1】:

您需要正确实现AVAudiosession 委托方法。如果您将音频会话设置为非活动状态,则系统将知道您已完成播放声音并恢复任何其他音频会话。参考Audio Session Programming Guide,尤其是setActive:error:方法。

【讨论】:

我也在同样的问题上苦苦挣扎。我正在使用 AVAudioPlayer 播放我的应用程序音频并使用 AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setActive:NO er​​ror:nil]; [audoPlayerObj 播放]; [audioSession setActive:YES 错误:nil];。在我的应用程序播放音频后,其他应用程序音频仍然没有恢复。 您能帮我解决这个问题吗?我花了两天时间?等待你的回复。请参阅我的问题供您参考:***.com/questions/12475034/… 对不起,我不是常客。我倾向于离开几天。让我调查一下,然后回复你。 你是不是按错了顺序?您应该在开始播放之前将活动状态设置为“YES”,播放完毕后设置为“NO”。 非常感谢您的回复。我因为发烧请假,所以我没有回复你的消息。我已经尝试过您的代码,但 bg 其他应用程序的音频仍然没有恢复。我已经编辑了我的问题***.com/questions/12475034/…。请帮我解决这个问题。谢谢您,期待您的回复。

以上是关于使用 AVAudioPlayer 播放声音后恢复背景音频的主要内容,如果未能解决你的问题,请参考以下文章

使用 AVAudioPlayer 在后台播放声音序列

声音播放完毕后 AVAudioPlayer 实例会发生啥? [关闭]

AVAudioPlayer 声音在经过这么多 IBAction 后停止播放

使用 AVAudioPlayer 播放声音时出现问题?

(iphone) 如何使用 AVAudioPlayer 顺序播放声音?

使用 AVAudioPlayer 播放多个声音(一个接一个)