【问题标题】:How to resume the audio in ios?如何恢复ios中的音频?
【发布时间】:2015-04-28 12:55:43
【问题描述】:

我正在使用Audioplayer 播放 5-10 秒的音频文件。我的应用程序允许其他应用程序的背景音乐。在播放我的音频时,我正在使用停用其他音乐

 [[AVAudioSession sharedInstance] setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];

完成我的音频后,我想播放停用的音乐。

这在AVAudioPlayerAVAudioSession 中是否可行?或者哪个框架支持这个恢复功能?

【问题讨论】:

标签: ios audio ios7 avfoundation


【解决方案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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-12
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多