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

写了个 把手机作为电脑扬声器 的 app,成功上架 google play

  •  
  •   sduoduo233 · 21 小时 12 分钟前 · 1223 次点击

    下载

    https://play.google.com/store/apps/details?id=cc.viaaudio

    https://www.viaaudio.cc/

    功能

    唯一的功能是把电脑的音频推流到手机。感觉这个需求很小众,不太好推广 😂

    还有一个副功能是可以做到一个电脑同时连两个蓝牙耳机:PC 端直接连第一个蓝牙耳机,用 ViaAudio 把音频串流到手机,然后用手机连第二个蓝牙耳机。

    pKlfOQAkjB0DqEyMKjnBKd7m7l2I3brl.webp 2cotz0KockmT5IMfmn4bzMKfcflv1ZJc.webp

    起源

    一年前我注册了 google play 开发者,想上传一个自己写的 VPN 应用。但是正好赶上 google play 政策更新,新政策禁止个人开发者上架 VPN 应用,只能用公司账户上架。我没有公司账户,所以只能放弃。

    一个月多前收到 goolge play 邮件,说如果我账户再不发布任何 app 就要被关闭了。为了不浪费注册花的 $25 ,加上当时临时需要扬声器,就写了这个 把手机作为电脑扬声器 的 app 。

    如何找 tester

    nodeseek.com 发帖找的,大家很热情,很快就攒够 12 个人了
    我当时发的帖子 https://www.nodeseek.com/post-484194-1

    技术实现

    桌面端是用 c 写的。UI 用的 clay + sokol。用 clay 是因为之前看了一个 youtube 视频 感觉很有意思,就借着这次机会尝试一下。另外一个原因是 clay 和 sokol 都是 c header only 的,所以不用折腾 cmake / makefile 之类的构建系统,直接 gcc main.c 就能编译。声卡录音用的是 miniaudio,这个也是 c header only ,只下载 .h 文件就能用。

    音频推流我尝试过用 rtmp ,但发现延迟很高。最终决定手搓推流,用 miniaudio 录音以后,转成 PCM 格式,直接用 udp 发给 app 。app 进行 udp 乱序重组。udp 丢包就直接不管了,同局域网下丢包率应该不高。现在延迟能做到和蓝牙耳机差不多(个人凭感觉得出的结论,没有认真测试过)

    26 条回复    2025-11-25 15:25:04 +08:00
    wu67
        1
    wu67  
       21 小时 7 分钟前
    确实挺小众, 早些年还有 upnp 方案, 在同一局域网的手机和电脑之间互相作为输出设备
    win11
        2
    win11  
       21 小时 4 分钟前 via Android
    玩过类似的工具,但是将移动端设备作为 pc 的麦克风、摄像头,键盘鼠标…
    liuzimin
        3
    liuzimin  
       21 小时 2 分钟前 via Android
    我用的是 AudioRelay
    sduoduo233
        4
    sduoduo233  
    OP
       20 小时 56 分钟前 via Android   ❤️ 1
    @liuzimin audiorelay 有广告,所以就自己写了一个 🤣
    koa
        5
    koa  
       20 小时 45 分钟前
    “说如果我账户再不发布任何 app 就要被关闭了” Google Play 开发者账号还有这个规定?
    sduoduo233
        6
    sduoduo233  
    OP
       20 小时 32 分钟前
    @koa 有这个规定的

    Donkor
        7
    Donkor  
       19 小时 32 分钟前
    确实好小众,目标群体是哪一些
    livib
        8
    livib  
       19 小时 25 分钟前
    似乎在某些特殊场景下确实可能会有用,但我似乎没有
    andykuen959595
        9
    andykuen959595  
       19 小时 25 分钟前
    必须 Win11 啊
    greatlion
        10
    greatlion  
       19 小时 15 分钟前
    好棒 还没想到对我有啥用。。。
    sduoduo233
        11
    sduoduo233  
    OP
       18 小时 57 分钟前 via Android
    @andykuen959595 win10 应该也可以,只不过手头没有 win10 电脑,没测试过。
    Routeros
        12
    Routeros  
       18 小时 40 分钟前
    挺不错的,能不能接加一个功能:设置电脑是否同时播放音频。 目前听到了两个声音。
    nekoneko
        13
    nekoneko  
       18 小时 30 分钟前
    zerotier 公司, 家, 手机 组网
    公司电脑在机房, 所以没有扬声器,
    那么我用公司电脑 mstsc 家里电脑的时候, 可以用这个来接收音频?

    但是试了一下不太行.
    nekoneko
        14
    nekoneko  
       18 小时 28 分钟前
    @nekoneko 断开手机的蓝牙耳机后, 可以用扬声器播放声音...
    nekoneko
        15
    nekoneko  
       18 小时 26 分钟前
    @nekoneko #14 重启 app 后, 用蓝牙耳机也可以了
    xi4oyu
        16
    xi4oyu  
       18 小时 24 分钟前
    我也写过这样的工具,当时台式机没音响就想到这个需求,当时是在电脑上启动一个 python web 服务负责录音,然后手机打开网站用 js 回放的,写得非常粗糙
    sduoduo233
        17
    sduoduo233  
    OP
       18 小时 24 分钟前 via Android
    @Routeros

    Linux 上可以用 `pactl load-module module-null-sink sink_name="virtual_speaker" sink_properties=device.description="virtual_speaker"` 创建一个虚拟扬声器,把系统默认输出改成这个虚拟的,然后在 viaaudio 里选虚拟扬声器

    Windows 上应该也可以用虚拟扬声器 比如这个 https://vb-audio.com/Cable/index.htm
    Lyet813
        18
    Lyet813  
       18 小时 23 分钟前 via Android
    我现在正常用 AudioRelay ,缺点是每次电脑重启后无法自动连接,op 有做这个功能吗?
    craftsmanship
        19
    craftsmanship  
       18 小时 21 分钟前 via Android
    牛哇 用 C 写 UI
    achong
        20
    achong  
       18 小时 17 分钟前
    有 mac 版吗,电脑链接两个蓝牙耳机有点需求
    HeyWeGo
        21
    HeyWeGo  
       18 小时 17 分钟前
    sduoduo233
        22
    sduoduo233  
    OP
       18 小时 17 分钟前 via Android
    @Lyet813 开机自启不太好做。viaaudio 现在是绿色软件,只有一个 exe ,不用安装。用户要是把 exe 移走了自启就失效了。
    sduoduo233
        23
    sduoduo233  
    OP
       18 小时 16 分钟前 via Android
    @achong 已经做出来了 过几天发
    sduoduo233
        24
    sduoduo233  
    OP
       18 小时 13 分钟前 via Android
    @Lyet813 下个版本可以考虑做一个安装版的
    HeyWeGo
        25
    HeyWeGo  
       18 小时 12 分钟前
    刚刚看了下,最低 windows 11? 需要用到某些新特性吗?
    sduoduo233
        26
    sduoduo233  
    OP
       18 小时 6 分钟前 via Android
    @HeyWeGo 最低 win11 是因为我没有 win10 ,所以不知道 win10 能不能用 🤣 如果老哥有 win10 帮忙测试一下,能用的话我就把这个要求删了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:31 · PVG 09:31 · LAX 17:31 · JFK 20:31
    ♥ Do have faith in what you're doing.