【问题标题】:iPhone AVAudioPlayer stopping background musiciPhone AVAudioPlayer 停止背景音乐
【发布时间】:2010-12-12 22:57:58
【问题描述】:

所以我刚刚注意到,在我的 iPod Touch 上,当我的应用触发一个短的 wav 文件以使用 AVAudioPlayer 播放时,音乐会暂停。这是正常的吗?

我找不到对此的任何参考,而且似乎会在某处注明。有没有办法在我播放声音时让音乐继续播放?

【问题讨论】:

  • 肯尼请更改您接受的答案。 0:)

标签: iphone audio avaudioplayer


【解决方案1】:

基本上,每个应用程序都分配有一个音频会话,该会话被建模为一个单例类,您可以在应用程序启动时获取它并为其设置参数。我解决同样问题的方法是通过放在applicationDidFinishLaunching 的一行代码:

目标-C:

[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryAmbient error:nil];

斯威夫特 2/3:

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)

【讨论】:

  • 这应该是公认的答案。重点和答案是 OP 的具体问题
  • 太棒了!这对我的 SpriteKit 游戏非常有用。谢谢!
【解决方案2】:

注意The AudioSession API has been completely deprecated in iOS 7.0

如果不做更多工作,您不能同时运行 AVAudioPlayer 和 iPod 播放器或 MPMusicPlayer 或 MPMoviePlayer。如果您想要简单,请使用 Audio Toolbox 的系统声音。

如果你想做一些额外的工作,那么你应该看看Audio Sessions

kAudioSessionCategory_UserInterfaceSoundEffects 用于触摸等音效 反馈、爆炸等等。

相当于 kAudioSessionCategory_AmbientSound 类别,您应该使用 反而。这 kAudioSessionCategory_UserInterfaceSoundEffects 类别在 iPhone OS 中已弃用 3.0.

kAudioSessionCategory_AmbientSound 为 长时间的声音,如雨声、汽车声 发动机噪音等等。也是 对于“一起玩”风格的应用程序, 用户弹奏的虚拟钢琴 通过 iPod 音频。

当您使用此类别时,来自 内置应用程序,例如 iPod,与您的音频混合。您的 响铃/静音时音频静音 开关设置为静音或当 屏幕锁定。

【讨论】:

    【解决方案3】:

    根据您的要求,播放系统声音可能还不够,请查看会话选项,例如与其他人混合

    struct AVAudioSessionCategoryOptions : OptionSetType {
        init(rawValue rawValue: UInt)
        static var MixWithOthers: AVAudioSessionCategoryOptions { get }
        static var DuckOthers: AVAudioSessionCategoryOptions { get }
        static var AllowBluetooth: AVAudioSessionCategoryOptions { get }
        static var DefaultToSpeaker: AVAudioSessionCategoryOptions { get }
        static var InterruptSpokenAudioAndMixWithOthers: AVAudioSessionCategoryOptions { get }
    }
    

    当您开始会话时,传递MixWithOthers 选项,也许DuckOthers(播放声音时会降低 ipod 音量)是另一个选项。

    【讨论】:

      【解决方案4】:

      Swift 5 等效:

      try? AVAudioSession.sharedInstance().setCategory(.ambient)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-19
        • 2016-12-29
        • 2021-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多