【发布时间】:2020-02-14 18:50:56
【问题描述】:
我正在尝试找到一种方法来暂停设备上任何正在播放的媒体,因此我正在考虑触发与用户按下耳机“中间按钮”时触发的相同逻辑
我设法通过不将 AVAudioSession 活动属性设置为 false 并将其挂起来阻止音乐恢复(在我的应用程序中暂停它之后,它基本上启动了一个 AVAudioSession 进行录制),但我很确定那是一个坏方法去做吧。如果我停用它,音乐就会恢复。我正在考虑的另一个选择是播放某种静音循环,它会“模仿”我需要做的静音。但我认为,如果我正在寻求的是可行的,这将是我从 question 了解到的最好的方法,它不能使用正常的方式完成
func stopAudioSession() {
let audioSession = AVAudioSession.sharedInstance(
do {
if audioSession.secondaryAudioShouldBeSilencedHint{
print("someone is playing....")
}
try audioSession.setActive(false, options: .notifyOthersOnDeactivation)
isSessionActive = false
} catch let error as NSError {
print("Unable to deactivate audio session: \(error.localizedDescription)")
print("retying.......")
}
}
在此代码 sn-p 中,正如函数名所暗示的那样,我将 active 设置为 false,试图找到其他选项,但我找不到停止录制会话的另一种方法,并阻止恢复已在播放的其他应用程序
如果有人可以指导我应该查看哪个库,例如,如果我可以点击 H/W 部分并触发它,或者我是否可以找出哪个库正在侦听此按钮按下事件并处理暂停/播放功能
【问题讨论】:
标签: ios swift iphone avaudiosession headphones