Airpods 按一下可以暂停/继续播放,按两下可以播放下一首,按三下可以播放上一首,这个功能可用于发送摩尔斯。
实现也很简单,甚至可以做成在线网页版,只需播放一个空白音频,然后通过 Media Session API 即可获得事件回调。昨晚花两小时做了个简单的演示:
https://etherdream.github.io/headphone-morse-transmitter/
https://github.com/EtherDream/headphone-morse-transmitter
(浏览器需要用户行为才能播放音频,点击页面任意位置即可开始。目前火狐浏览器还存在些问题,空白音频不能用功能键控制~)
连上耳机后,点击发送 “.”,双击发送 “-”,三击删除前一个字符。
由于真正的摩尔斯码是短按和长按,而这里是单击和双击,因此操作上和还是有一定区别的,尤其是按得太快时,单击会被识别成双击甚至三击,所以间隔不能太短,目前默认设置成 1.5s 。即使只有一个码,例如字母 E 只有一个 ".",按下后也要耐心等一秒多。
如果没有耳机的话,用键盘上的暂停播放、下一首、上一首这 3 个功能键也能模拟。
1
huzhizhao 237 天前
嗯?间谍场景?
|
2
NoOneNoBody 237 天前
分隔呢?两码之间“智能”分隔?
|
3
iqoo OP @NoOneNoBody 超时时间到了本次输入就结束了。单词之间没有空格。
|
4
NoOneNoBody 237 天前
@iqoo #3
我的意思是两字母之间就用 000 分隔么? |
5
iqoo OP @NoOneNoBody 不明白你说的分隔是什么。超时时间到了就把已输入的点划序列去查表转成字母,查不到就不输出字母。
|
6
iqoo OP @NoOneNoBody 如果单独设置一个按键用于强制分隔倒也是可以,比如把三击用于强制分隔,这样输入的时候就不用人为去等超时了,直接三击立马输出。
|
7
NoOneNoBody 237 天前 1
@iqoo #5
一般是不会用超时判断的,因为停顿有几种:字母之间、单词之间、发送结束(可能还有句子之间),每个用不同的超时这种感受性方式,输入的人很难受,一般都用特殊符号或者按键分隔。你看看谍战剧就知道了,发电报是不停顿连续按的 |
8
iqoo OP @NoOneNoBody 主要耳机这个场合不能按的太快,按太快会被误识别成双击,所以再用额外按键标记间隔信息可能会更慢。当然用三击标识间隔是可行的,删除用其他方式表示。我考虑改进下。
|
9
7gugu 237 天前
天才!体验了一下好有趣
|
10
NoOneNoBody 237 天前 2
举个例子:
西安哥 拼音:xiange 带分隔符: 1. xi'an'ge 2. xian'ge 3. xiang'e 换言之不带分隔符至少有三种歧义,单靠分出字母是不行的 你应该是懂摩斯码,但没实际玩过电报操作,如果靠时间停顿,是要非常熟悉对方的操作频率的(互相有默契) 电报需要精简,因为每个字符都拉长了,发一整句很耗时(以前还有费用问题,字少便宜),精简后双方明白就行,缩略语甚至奇怪的“组词”都会出现 如:这里好多有钱的人,还很好骗,别错过 --> 钱多人傻快来 --> m 大 来(最后这个仅 6 个字母) |
11
Donaldo 237 天前
@NoOneNoBody #10 再精简一下,“1”
|
12
Unpro 236 天前
有意思
|
13
StevenRCE0 236 天前
@NoOneNoBody 有意思,不过 OP 这个显然是玩具场景,拿等待时间分割牺牲效率倒也不会有歧义出现
|
14
Lexgni 236 天前
长按不是可以切换降噪吗,单击和长按输入,三击删除应该就不会误识别了
|
15
iqoo OP @StevenRCE0 是的,纯属娱乐,输入效率非常低😂 适合初学者学习使用,晚上睡觉关掉手机屏幕了也能用。
|
16
unii23i 235 天前
马一下,感觉会成为我的小说素材
|