使用 Airpods 耳机发送摩尔斯码

241 天前
 iqoo

Airpods 按一下可以暂停/继续播放,按两下可以播放下一首,按三下可以播放上一首,这个功能可用于发送摩尔斯。

实现也很简单,甚至可以做成在线网页版,只需播放一个空白音频,然后通过 Media Session API 即可获得事件回调。昨晚花两小时做了个简单的演示:

https://etherdream.github.io/headphone-morse-transmitter/

https://github.com/EtherDream/headphone-morse-transmitter

(浏览器需要用户行为才能播放音频,点击页面任意位置即可开始。目前火狐浏览器还存在些问题,空白音频不能用功能键控制~)

连上耳机后,点击发送 “.”,双击发送 “-”,三击删除前一个字符。

由于真正的摩尔斯码是短按和长按,而这里是单击和双击,因此操作上和还是有一定区别的,尤其是按得太快时,单击会被识别成双击甚至三击,所以间隔不能太短,目前默认设置成 1.5s 。即使只有一个码,例如字母 E 只有一个 ".",按下后也要耐心等一秒多。

如果没有耳机的话,用键盘上的暂停播放、下一首、上一首这 3 个功能键也能模拟。

2300 次点击
所在节点    分享创造
16 条回复
huzhizhao
241 天前
嗯?间谍场景?
NoOneNoBody
241 天前
分隔呢?两码之间“智能”分隔?
iqoo
241 天前
@NoOneNoBody 超时时间到了本次输入就结束了。单词之间没有空格。
NoOneNoBody
241 天前
@iqoo #3
我的意思是两字母之间就用 000 分隔么?
iqoo
241 天前
@NoOneNoBody 不明白你说的分隔是什么。超时时间到了就把已输入的点划序列去查表转成字母,查不到就不输出字母。
iqoo
241 天前
@NoOneNoBody 如果单独设置一个按键用于强制分隔倒也是可以,比如把三击用于强制分隔,这样输入的时候就不用人为去等超时了,直接三击立马输出。
NoOneNoBody
241 天前
@iqoo #5
一般是不会用超时判断的,因为停顿有几种:字母之间、单词之间、发送结束(可能还有句子之间),每个用不同的超时这种感受性方式,输入的人很难受,一般都用特殊符号或者按键分隔。你看看谍战剧就知道了,发电报是不停顿连续按的
iqoo
241 天前
@NoOneNoBody 主要耳机这个场合不能按的太快,按太快会被误识别成双击,所以再用额外按键标记间隔信息可能会更慢。当然用三击标识间隔是可行的,删除用其他方式表示。我考虑改进下。
7gugu
241 天前
天才!体验了一下好有趣
NoOneNoBody
241 天前
举个例子:
西安哥
拼音:xiange
带分隔符:
1. xi'an'ge
2. xian'ge
3. xiang'e
换言之不带分隔符至少有三种歧义,单靠分出字母是不行的

你应该是懂摩斯码,但没实际玩过电报操作,如果靠时间停顿,是要非常熟悉对方的操作频率的(互相有默契)
电报需要精简,因为每个字符都拉长了,发一整句很耗时(以前还有费用问题,字少便宜),精简后双方明白就行,缩略语甚至奇怪的“组词”都会出现
如:这里好多有钱的人,还很好骗,别错过 --> 钱多人傻快来 --> m 大 来(最后这个仅 6 个字母)
Donaldo
241 天前
@NoOneNoBody #10 再精简一下,“1”
Unpro
240 天前
有意思
StevenRCE0
240 天前
@NoOneNoBody 有意思,不过 OP 这个显然是玩具场景,拿等待时间分割牺牲效率倒也不会有歧义出现
Lexgni
240 天前
长按不是可以切换降噪吗,单击和长按输入,三击删除应该就不会误识别了
iqoo
240 天前
@StevenRCE0 是的,纯属娱乐,输入效率非常低😂 适合初学者学习使用,晚上睡觉关掉手机屏幕了也能用。
unii23i
240 天前
马一下,感觉会成为我的小说素材

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1035544

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX