以编程方式触发耳机暂停按钮会执行的操作

问题描述 投票:1回答:1

[我试图找到一种方法来暂停设备上任何正在播放的媒体,所以我想触发与用户按下耳机的“中间按钮”时触发的逻辑相同的逻辑>

通过不将AVAudioSession的active属性设置为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.......")            
        }
    }

在此代码段中,函数名称暗示我将active设置为false,试图查找其他选项,但我找不到其他方法来停止录制会话并阻止已在播放的其他应用程序的恢复

[如果有人可以引导我进入哪个图书馆,例如,如果我可以进入硬件部分并触发它,或者如果我可以找出哪个图书馆正在监听此按钮按下事件并处理暂停/播放功能

我试图找到一种方法来暂停设备上的所有播放媒体,因此我想触发与用户按下耳机“中间按钮”时触发的逻辑相同的逻辑,我设法防止了...

ios swift iphone avaudiosession headphones
1个回答
0
投票

我的一位在IOS开发方面经验更为丰富的朋友提出了以下解决方法,它很有效-我将其发布在这里,因为它可能会帮助尝试实现类似行为的人。

为了停止/暂停用户设备上当前正在播放的内容,您需要在应用中添加music player。然后在需要暂停/停止当前媒体的位置上,您只需启动播放器,然后播放然后暂停/停止它-简单:)

© www.soinside.com 2019 - 2024. All rights reserved.