如何恢复ios中的音频?
Posted
技术标签:
【中文标题】如何恢复ios中的音频?【英文标题】:How to resume the audio in ios? 【发布时间】:2015-04-28 12:55:43 【问题描述】:我正在使用Audioplayer
播放 5-10 秒的音频文件。我的应用程序允许其他应用程序的背景音乐。在播放我的音频时,我正在使用停用其他音乐
[[AVAudiosession sharedInstance] setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];
完成我的音频后,我想播放停用的音乐。
这在AVAudioPlayer
和AVAudioSession
中是否可行?或者哪个框架支持这个恢复功能?
【问题讨论】:
我也需要这个答案!!! 请试试这个:***.com/questions/6448043/… 谢谢,恢复后无法播放。 【参考方案1】:播放您的声音后,停用您的 AVAudioSession
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];
【讨论】:
它会停止其他音乐播放器,但之后就不会开始播放了 这是正确答案。但是,您无法控制播放背景音乐的其他应用程序是否正确处理它们可以恢复的通知。\或首先确保它们具有正确的权限,因此不能保证它会正常工作。【参考方案2】:你可以为你所有的语音通话创建一个类。
或者,如果您知道正在播放什么,您可以将它们保存在一个数组中并播放出来。
框架不允许你做你想做的事。
我建议为任何音频呼叫创建自己的包装类。
【讨论】:
【参考方案3】:我搜索了一下,找到了this post。
来自链接的答案:
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
每当您不需要应用程序中的音频会话时(即当您不输出任何声音时),您都应该停用它。在有意义的情况下,您应该使用此方法,以便通知任何背景音频并可以恢复(收到此通知的应用程序不一定必须恢复)。
我尚未确认它是否有效,但可以尝试一下,希望对您有所帮助。
【讨论】:
【参考方案4】:@gabuh 的回答,翻译成 Swift:
try? AVAudioSession.sharedInstance().setActive(false, options: .notifyOthersOnDeactivation)
【讨论】:
以上是关于如何恢复ios中的音频?的主要内容,如果未能解决你的问题,请参考以下文章
如何结合 AudioQueuePause 和 AudioQueueGetCurrentTime 在 iPhone SDK 中恢复音频播放?