Skip to main content

Provide support of 3.5mm headset controls for PC

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trrsheadset-0.0.1a2.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

trrsheadset-0.0.1a2-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

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

Hashes for trrsheadset-0.0.1a2.tar.gz
Algorithm Hash digest
SHA256 ac18c92765ea36c02778eab5d5fc5f02431f5f56617cf62ee87547bffa895124
MD5 029ccb1e0e78955bb983ae8a730b0148
BLAKE2b-256 21004b0cae07fc88335fee22b4385617178505ab14b9914ea606904f78eef3f7

See more details on using hashes here.

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

Hashes for trrsheadset-0.0.1a2-py3-none-any.whl
Algorithm Hash digest
SHA256 20c5a3450137b4b1edbea439c8eff479f097f4e3f5fc254f81895ac65f2e0033
MD5 3a6b811062a6b44aa2236c1a4ce31174
BLAKE2b-256 d9817d0dd8d46cf71ccb8b04be57d1048cb9316997aae2efef589facbac738a9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page