为 PC 提供 3.5mm 耳机线控支持
Project description
Headset Controls
为 PC 提供 3.5mm 耳机线控支持。
Python >= 3.6
目录
介绍
3.5mm TRRS 有线耳机的麦克风与按钮并联,按钮按下时麦克风被短接,安卓设备通过检测电压差可以知道按下的按钮。
多数 PC 设备无法获知电压差,但短接对麦克风两个声道产生的影响有些不同。这里使用 Soundcard Oscilloscope 的 x-y graph 功能对比最近 1s 内两个声道的信号幅度进行演示。为了更明显,我们只检视 0.1 范围内的 x 轴和 y 轴:
这是普通声音在极端情况下的声道对比图:
这是 A 按钮(暂停开始键)的声道对比图:
其他情况的声道对比有兴趣的同志可以自己尝试。本项目正是在不同情况的不同声道对比中找不同,来尝试辨别不同按钮的点击、长按事件。
因此,运行时需要使用麦克风。
安装
以下两种方式都需要联网,会自动安装依赖包 keyboard
,numpy
和 sounddevice
。
PyPI
通过 PyPI 安装:
pip install trrsheadset
Clone
或者, 从 这里 下载本仓库的压缩包,将他解压到一个记得住位置的地方,作为安装文件夹。
在安装文件夹中运行:
pip install .
使用
插入耳机后,在命令行中使用 Python 启动 trrsheadset
即可:
python -m trrsheadset [参数]
关闭通常使用两种方式,一种是直接关闭命令行窗口,一种是按下并松开 ctrl+shift+h
后在 1s 内按下 e
键。
选用 pythonw
启动可在命令行关闭后保持运行,可通过任务管理器 Python 3.x (Windowed)
或上述热键关闭。
重插耳机需要重新启动。
可选参数
-l
or --log
将运行日志保存至文件
--no-hotkey
禁用键盘快捷键
-h
or --help
输出此列表后退出
按键
耳机按键映射和键盘快捷键响应。
耳机
按键 | 短按 | 长按 |
---|---|---|
A | 继续 / 暂停 | 继续 / 暂停 |
B | 音量+ | 下一首 |
C | 音量- | 上一首 |
D | 继续 / 暂停 | 继续 / 暂停 |
键盘
基础快捷键: ctrl+shift+h
在基础快捷键触发后 1s 内按下以下按键可以触发相应操作:
p
暂停或继续
e
退出
注意哦
- 不要按得太快,招架不住。
- 技术问题欢迎提 issue,其他问题请进入 讨论区(Discussions) 进行交流。
- 如果放久后按钮辨别老错,可能是太久不放音乐了电压不高(?存疑,欢迎讨论)
- 灵感源于:roligheten/AndroidMediaControlsWindows 👍
抓取日志
添加参数 -l
或 --log
启动可将运行时日志保存到运行时文件夹的 debug.log.1
和 debug.log
日志文件中。日志文件对定位 BUG 非常有帮助。
python run.py -l
捐赠
如果你足够开心 🌹
许可
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for trrsheadset-0.0.1a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72ad21027d1016f76bdedd844183a67409756ee08851693d6000c316c17b9d10 |
|
MD5 | 7ce41d80ae70108a0db2bf9b164e66f4 |
|
BLAKE2b-256 | 5206b3dab30f4ad1338dcca9dd35b4e30bd3d4d43bec1a59a406fd9745919819 |