V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
iqoo
V2EX  ›  分享创造

使用 Airpods 耳机发送摩尔斯码

  •  2
     
  •   iqoo · 9 天前 · 1735 次点击

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

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

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

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

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

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

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

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

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

    你应该是懂摩斯码,但没实际玩过电报操作,如果靠时间停顿,是要非常熟悉对方的操作频率的(互相有默契)
    电报需要精简,因为每个字符都拉长了,发一整句很耗时(以前还有费用问题,字少便宜),精简后双方明白就行,缩略语甚至奇怪的“组词”都会出现
    如:这里好多有钱的人,还很好骗,别错过 --> 钱多人傻快来 --> m 大 来(最后这个仅 6 个字母)
    Donaldo
        11
    Donaldo  
       9 天前
    @NoOneNoBody #10 再精简一下,“1”
    Unpro
        12
    Unpro  
       9 天前
    有意思
    StevenRCE0
        13
    StevenRCE0  
       8 天前
    @NoOneNoBody 有意思,不过 OP 这个显然是玩具场景,拿等待时间分割牺牲效率倒也不会有歧义出现
    Lexgni
        14
    Lexgni  
       8 天前
    长按不是可以切换降噪吗,单击和长按输入,三击删除应该就不会误识别了
    iqoo
        15
    iqoo  
    OP
       8 天前
    @StevenRCE0 是的,纯属娱乐,输入效率非常低😂 适合初学者学习使用,晚上睡觉关掉手机屏幕了也能用。
    unii23i
        16
    unii23i  
       8 天前
    马一下,感觉会成为我的小说素材
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2463 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:09 · PVG 23:09 · LAX 08:09 · JFK 11:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.