Provide support of 3.5mm headset controls for PC
Project description
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
捐赠
如果你足够开心 🌹
许可
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
File details
Details for the file trrsheadset-0.0.1a2.tar.gz
.
File metadata
- Download URL: trrsheadset-0.0.1a2.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac18c92765ea36c02778eab5d5fc5f02431f5f56617cf62ee87547bffa895124 |
|
MD5 | 029ccb1e0e78955bb983ae8a730b0148 |
|
BLAKE2b-256 | 21004b0cae07fc88335fee22b4385617178505ab14b9914ea606904f78eef3f7 |
File details
Details for the file trrsheadset-0.0.1a2-py3-none-any.whl
.
File metadata
- Download URL: trrsheadset-0.0.1a2-py3-none-any.whl
- Upload date:
- Size: 20.7 kB
- Tags: Python 3
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20c5a3450137b4b1edbea439c8eff479f097f4e3f5fc254f81895ac65f2e0033 |
|
MD5 | 3a6b811062a6b44aa2236c1a4ce31174 |
|
BLAKE2b-256 | d9817d0dd8d46cf71ccb8b04be57d1048cb9316997aae2efef589facbac738a9 |