通过iOS上的耳机插孔获取开关控制输入

通过iOS上的耳机插孔获取开关控制输入,ios,swift,audio,avaudioplayer,Ios,Swift,Audio,Avaudioplayer,作为一个小节日项目,我想通过一个可访问性开关控制一个应用程序,该开关通过3.5mm耳机插孔连接到iOS设备 这是开关和插头: 我的问题是,当我按下按钮时,我不知道会发出什么样的信号——我假设它的作用类似于耳机的遥控器 有没有办法测量这个按钮的输入,或者有人知道如何在iOS上获取按钮的输入?如果是耳机插孔,您可以使用 override func remoteControlReceived(with event: UIEvent?) {} 并在其内部切换event?.type.subType类似

作为一个小节日项目,我想通过一个可访问性开关控制一个应用程序,该开关通过3.5mm耳机插孔连接到iOS设备

这是开关和插头:

我的问题是,当我按下按钮时,我不知道会发出什么样的信号——我假设它的作用类似于耳机的遥控器


有没有办法测量这个按钮的输入,或者有人知道如何在iOS上获取按钮的输入?

如果是耳机插孔,您可以使用

 override func remoteControlReceived(with event: UIEvent?) {}
并在其内部切换
event?.type.subType
类似的内容

override func remoteControlReceived(with event: UIEvent?) {
            if let e = event , e.type == .remoteControl {
                if  e.subtype == UIEventSubtype.remoteControlPause {
                // do something
                }else if(e.subtype == .remoteControlPlay){
                //do something else
                }else if(e.subtype == .remoteControlTogglePlayPause){
                // do something else
                }
            }
        }

苹果有线3.5毫米耳机和音量控制有4个导体。在你的照片中,我只看到两个导体。因此,您的交换机无法发送苹果自己的耳机远程命令,因为用于发送数据的麦克风铃声缺失。 我猜你的开关只是使两个导体接触

这就是我要做的

用万用表检查开关在打开和关闭位置的电阻。 我希望在接近时,电阻很低或接近于零

现在找到一副(旧的)带音量控制的苹果3.5毫米耳机。拆卸耳机的音量控制装置,并将辅助开关焊接到音量控制垫上。现在,您的辅助功能开关模拟按下音量控制

或者看看

因此,请使用微控制器模拟耳机音量控制,并使用辅助功能开关控制微控制器。这看起来像一个有趣的项目-享受

您的按钮是一个“大伙伴按钮开关”,由AbleNet为中重度上肢和运动残疾人士设计。它不是为插入IOS设备或任何移动平板电脑或手机而设计的

有一个“钩子+开关”接口(目前为185美元),设计用于连接此按钮和IOS设备,允许将两个此类按钮连接到lightning连接器。当以这种方式连接时,可以使用apple accessibility设置检测按钮按下并映射到许多不同类型的IOS操作。这是一大笔钱,但由于新的iPhone甚至没有音频插孔,它最终可能是值得的

链接到您的按钮是

连接到Hook+开关接口的链接为

可访问性交换机的苹果信息链接如下

Big Buddy按钮是一个被动瞬时动作开关。连接的mono TS插头内部连接到瞬时动作常开开关,因此按下开关将使尖端短接到套筒

将此TS插头插入设计用于接收TRRS插头的ios设备将短接RING1和RING2,并将其套在一起,即使未按下按钮,也无法完成任何有用的操作。按下该按钮将进一步缩短至环1、环2和套筒。如果直接插入TS插头,则无法从ios内部读取此类按钮按下

如果您想拼凑出一个适用于许多移动设备(如android)的解决方案,只需将TS插头更换为TRRS插头(或连接适配器),如下所示:

两个大按钮导体中的一个应连接到套管,套管承载电源(用于麦克风),并且是内部感应音量变化和切换的电压源。另一个大按钮导体应连接到RING2,RING2是耳塞通道和麦克风的地线。不得将任何东西连接到尖端或环1

按下大按钮将瞬间缩短至Ring2,这与按下耳塞电缆上的开关相同。如果要模拟音量增大或减小命令,可以将电阻器与按钮串联(220欧姆用于音量减小,600欧姆用于音量增大)

音频插孔的电气连接对于iOS设备和Android设备是一样的,但是如果你想连接上按钮并在iOS中检测到它们,你必须克服一个额外的障碍。作为其MFI(专为iPod/iPhone设计)程序的一部分,当任何东西插入音频插孔(或闪电接口)时,苹果会使用启动识别啁啾序列。您的设备内部必须有正确的芯片(或模拟该芯片的行为),否则当您无法响应身份验证请求时,按钮控制界面将被禁用。协议似乎随着时间的推移而发生了变化,因为与一款手机配合使用的售后产品并不总是与另一款手机配合使用。苹果内部人士表示,MFI芯片包含一个序列号,苹果可以在连接时读取该序列号。他们说反向工程认证在今天起作用,但苹果可能会在任何时候阻止它起作用

如果您想将其设计为产品,可以申请MFI计划

如果您只想构建一些设备,您将无法被MFI程序接受。在这种情况下,您需要购买Hook+Switch接口(或类似的接口),或者需要添加一个小型微处理器,如Arduino或Teensy,以模拟身份验证啁啾,正如David Carne所做的那样

如果你只想制作一个工作按钮,最简单的方法是使用一对现有的耳机,其中包含必要的芯片,并简单地将您的按钮线与套筒和环2平行。如果我这样做,我会得到一个TRRS延长线和拼接大伙伴按钮电线到正确的延长线的两条电线。只要将一对苹果认证的耳机插入分机以提供认证,您的大按钮就应该可以工作。然后,您将像往常一样检测到按钮按下(如上所述)

编辑:我测试了将附件按钮连接到套管