我正在iphone中播放音乐,当我运行我的应用程序时,它不应该停止背景设备音乐,应该停止自己的音乐,而背景音乐正在停止。我想和糖果粉碎应用程序一样。我该怎么做才能解决这个问题?请帮帮我
var isOtherAudioPlaying = AVAudioSession.sharedInstance().otherAudioPlaying
println("isOtherAudioPlaying>>> \(isOtherAudioPlaying)")
if(isOtherAudioPlaying == false)
{
audioPlayer1!.play()
}
答案 0 :(得分:1)
我建议查看Sameer's answer to this for Swift 2.0, just a few months back.与Swift 2.0完美配合。
let sess = AVAudioSession.sharedInstance()
if sess.otherAudioPlaying {
_ = try? sess.setCategory(AVAudioSessionCategoryAmbient, withOptions: []) //
_ = try? sess.setActive(true, withOptions: [])
}
答案 1 :(得分:0)
由于默认值为AVAudioSessionCategorySoloAmbient,因此您需要为应用设置正确的类别并将其激活。您可以使用AVAudioSessionCategoryAmbient来混合音频。
在AppDelegate.swift中添加:
func applicationDidBecomeActive(application: UIApplication) {
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
// ...
}
享受!
答案 2 :(得分:0)
将AVAudioSession.sharedInstance().setActive(true, error: nil)
推迟到需要开始播放音频时。应用启动后立即开始会话,将停止在其他应用上播放。
更多详细信息: https://developer.apple.com/documentation/avfoundation/avaudiosession
答案 3 :(得分:0)
Xcode 10.3
雨燕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 ....