具有播放音频类别的应用程序会停止其他应用程序的声音



我最近在应用程序中添加了无线电功能。

我希望它即使在背景中也能播放音乐。

所以我实现了这段代码

do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default, options: [.duckOthers, .allowBluetooth])
try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
print(error)
}

我现在让应用程序在后台播放音乐,但问题是该应用程序在启动时会停止所有其他应用程序的声音。

例如,当SoundCloud播放音乐时,当我启动应用程序时,SoundCloud会停止音乐。

我想实现的是让我的应用程序在后台播放音乐,并允许其他应用程序在我的应用不播放音乐时播放音乐。

我该如何解决该问题?

感谢

do {
try AVAudioSession.sharedInstance().setCategory(.ambient)
try AVAudioSession.sharedInstance().setActive(true)

} catch { print(error) }

上面的代码添加到AppDelegate.swift文件中,使用Options方法完成了启动。这将解决您的问题

要部分回答您的问题,您可以使用以下配置允许您的应用程序播放音频,而其他应用程序正在播放音频:

do {
try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)
} catch(let error) {
print(error.localizedDescription)
}

.playback表示音频播放是应用程序使用的核心。所以,如果你在播放音乐,背景声音像白噪音等,你可能正在使用播放模式。.mixWithOthers'一个选项,指示此会话的音频是否与其他音频应用程序中活动会话的音频混合。'-换句话说,允许您的主音频与来自其他应用程序的音频混合。

有一件事我还没有弄清楚,那就是为什么在第一次启动我的应用程序时,其他背景音频会暂停。随后的发布似乎运行良好。

相关内容

  • 没有找到相关文章

最新更新