7

我在 iphone 中播放音乐,当我运行我的应用程序时,它不应该停止背景设备音乐,应该停止自己的音乐,而不是背景音乐停止。我想做和糖果迷应用程序一样的事情。我应该怎么做才能解决这个问题?请帮我

    var isOtherAudioPlaying = AVAudioSession.sharedInstance().otherAudioPlaying
      println("isOtherAudioPlaying>>> \(isOtherAudioPlaying)")
      if(isOtherAudioPlaying == false)
           {
            audioPlayer1!.play()
           }
4

4 回答 4

2

我建议在几个月前查看 Sameer 对 Swift 2.0 的回答。与 Swift 2.0 完美配合。

let sess = AVAudioSession.sharedInstance()
if sess.otherAudioPlaying {
    _ = try? sess.setCategory(AVAudioSessionCategoryAmbient, withOptions: []) //
    _ = try? sess.setActive(true, withOptions: [])
}
于 2016-01-08T16:16:35.563 回答
1

推迟AVAudioSession.sharedInstance().setActive(true, error: nil)到您需要开始播放音频时。在应用程序启动后立即启动会话会停止在其他应用程序上播放。

更多详情: https ://developer.apple.com/documentation/avfoundation/avaudiosession

于 2019-04-03T23:35:56.787 回答
1

由于默认值为 AVAudioSessionCategorySoloAmbient,因此您需要为您的应用设置正确的类别并激活它。您可以使用 AVAudioSessionCategoryAmbient 来混合音频。

在你的 AppDelegate.swift 中添加这个:

func applicationDidBecomeActive(application: UIApplication) {
  AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: nil)
  AVAudioSession.sharedInstance().setActive(true, error: nil)
  // ...
}

享受!

于 2015-08-13T17:38:16.377 回答
0

Xcode 10.3
Swift 4.2
在 iPhoneX (12.2)、iPhone5s(11.0.3) 中测试

功能 -> 以静音模式播放音频 + 与其他应用程序音频一起播放。

这是代码,

private func setupAudioSession() {
        //enable other applications music to play while quizView
        let options = AVAudioSession.CategoryOptions.mixWithOthers
        let mode = AVAudioSession.Mode.default
        let category = AVAudioSession.Category.playback
        try? AVAudioSession.sharedInstance().setCategory(category, mode: mode, options: options)
        //---------------------------------------------------------------------------------
        try? AVAudioSession.sharedInstance().setActive(true)
    }

我会建议你在 AppDelegate -> didFinishLaunchingWithOptions...中设置这个功能。

于 2019-08-07T11:25:05.880 回答