Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Banner

Headset Controls

为 PC 提供 3.5mm 耳机线控支持。

Python >= 3.6

项目目前严重缺乏测试,不同设备、不同耳机很可能有不同表现。

目录

介绍

TRRS 接口的有线耳机的麦克风与按钮并联,按钮按下时麦克风被短接,安卓设备通过检测电压差可以知道按下的按钮。

Reference Headset Circuits

多数 PC 设备无法获知电压差,但短接对麦克风两个声道产生的影响有些不同。这里使用 Soundcard Oscilloscope 的 x-y graph 功能对比最近 1s 内两个声道的信号幅度进行演示。为了更明显,我们只检视 0.1 范围内的 x 轴和 y 轴:

这是普通声音在极端情况下的声道对比图:

极端声音的声道对比图

这是 A 按钮(暂停开始键)的声道对比图:

A 按钮的声道对比图

其他情况的声道对比有兴趣的同志可以自己尝试。本项目正是在不同情况的不同声道对比中找不同,来尝试辨别不同按钮的点击、长按事件。

因此,运行时需要使用麦克风。

安装

以下两种方式都需要联网,会自动安装依赖包 keyboardnumpysounddevice

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 的释放动作,此时可以按击键盘左边对应按键恢复。

注意哦

抓取日志

添加参数 -l--log 启动可将运行时日志保存到运行时文件夹debug.log.1debug.log 日志文件中。日志文件对定位 BUG 非常有帮助。

python run.py -l

捐赠

如果你足够开心 🌹

支付宝收款码 微信收款码

许可

GPL-3.0 License

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)

Source distribution for trrsheadset 0.0.1a2
File Size Uploaded
trrsheadset-0.0.1a2.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for trrsheadset 0.0.1a2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.1a2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page