我看到AVAudioEngine
出现了意想不到的影响,我正试图解决这个问题。当我的应用程序的引擎启动时,另一个应用程序的音频播放的路径从扬声器变为耳机。我希望其他应用继续播放扬声器。
以下是如何重现。
制作一个空应用并在下面添加UnexpectedAudio
课程。在ViewController
课程中添加并初始化unexpected
属性(let unexpected = UnexpectedAudio()
),然后在调用unexpected.start()
的情节提要板中添加一个按钮。
class UnexpectedAudio {
let engine: AVAudioEngine
init() {
self.engine = AVAudioEngine()
_ = engine.inputNode // lazily creates node
}
func start() {
try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,
mode:AVAudioSessionModeDefault,
options: [.mixWithOthers])
try! engine.start()
}
}
运行该应用,但不要按此按钮。然后在没有插入耳机的情况下,跳转到Apple Music并播放一首歌曲。它应该出现在演讲者面前。现在,切换回您的应用程序并按下按钮。对我来说,这使得Apple Music音频切换回到耳机。
知道为什么会这样吗?我怎么能阻止路线改变?谢谢!