This release is a pre-release and may not be stable for production use.
Headset Controls
为 PC 提供 3.5mm 耳机线控支持。
Python >= 3.6
项目目前严重缺乏测试,不同设备、不同耳机很可能有不同表现。
目录
介绍
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+break快捷键强制退出。- 选用
pythonw启动可在命令行关闭后保持运行,可在任务管理器种找到Python 3.x (Windowed)关闭。
重插耳机需要重新启动。
可选参数
-l or --log 将运行日志保存至文件
--use-hotkey 开启键盘快捷键
-h or --help 输出此列表后退出
按键
耳机按键映射 & 键盘快捷键响应。基于 Python 库 keyboard 。
耳机
| 按键 | 短按 | 长按 | 双击 |
|---|---|---|---|
| A | 继续 / 暂停 | 继续 / 暂停 | 静音 |
| B | 音量+ | 下一首 | / |
| C | 音量- | 上一首 | / |
| D | / | / | / |
双击操作处于开发早期阶段
键盘
需在启动时使用 --use-hotkey 参数。
基础快捷键 ctrl+shift+h ,在基础快捷键触发后 1s 内按下以下按键可以触发相应操作:
p 暂停或继续
e 退出
! 部分设备在开启上述快捷键后,检测不到右 shift、右 ctrl 的释放动作,此时可以按击键盘左边对应按键恢复。
注意哦
- 不要按得太快,招架不住。
- 技术问题欢迎提 issue,其他问题请进入 讨论区(Discussions) 进行交流。
- 如果放久后按钮辨别老错,可能是太久不放音乐了电压不高(?存疑,欢迎讨论)
- 灵感源于:roligheten/AndroidMediaControlsWindows 👍
抓取日志
添加参数 -l 或 --log 启动可将运行时日志保存到运行时文件夹的 debug.log.1 和 debug.log 日志文件中。日志文件对定位 BUG 非常有帮助。
python run.py -l
捐赠
如果你足够开心 🌹
许可
Release files for trrsheadset 0.0.1a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trrsheadset-0.0.1a2.tar.gz | 10.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trrsheadset-0.0.1a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.5 kB
Release files / trrsheadset-0.0.1a2.tar.gz
| Download URL | trrsheadset-0.0.1a2.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac18c92765ea36c02778eab5d5fc5f02431f5f56617cf62ee87547bffa895124
|
|
BLAKE2b-256 checksum How to use checksums |
21004b0cae07fc88335fee22b4385617178505ab14b9914ea606904f78eef3f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2
|
Release files / trrsheadset-0.0.1a2-py3-none-any.whl
| Download URL | trrsheadset-0.0.1a2-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
20c5a3450137b4b1edbea439c8eff479f097f4e3f5fc254f81895ac65f2e0033
|
|
BLAKE2b-256 checksum How to use checksums |
d9817d0dd8d46cf71ccb8b04be57d1048cb9316997aae2efef589facbac738a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2
|