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

22 小时 41 分钟前
 sduoduo233

下载

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

https://www.viaaudio.cc/

功能

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

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

起源

一年前我注册了 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 丢包就直接不管了,同局域网下丢包率应该不高。现在延迟能做到和蓝牙耳机差不多(个人凭感觉得出的结论,没有认真测试过)

1254 次点击
所在节点    分享创造
26 条回复
wu67
22 小时 35 分钟前
确实挺小众, 早些年还有 upnp 方案, 在同一局域网的手机和电脑之间互相作为输出设备
win11
22 小时 32 分钟前
玩过类似的工具,但是将移动端设备作为 pc 的麦克风、摄像头,键盘鼠标…
liuzimin
22 小时 30 分钟前
我用的是 AudioRelay
sduoduo233
22 小时 24 分钟前
@liuzimin audiorelay 有广告,所以就自己写了一个 🤣
koa
22 小时 14 分钟前
“说如果我账户再不发布任何 app 就要被关闭了” Google Play 开发者账号还有这个规定?
sduoduo233
22 小时 0 分钟前
@koa 有这个规定的

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

但是试了一下不太行.
nekoneko
19 小时 57 分钟前
@nekoneko 断开手机的蓝牙耳机后, 可以用扬声器播放声音...
nekoneko
19 小时 55 分钟前
@nekoneko #14 重启 app 后, 用蓝牙耳机也可以了
xi4oyu
19 小时 53 分钟前
我也写过这样的工具,当时台式机没音响就想到这个需求,当时是在电脑上启动一个 python web 服务负责录音,然后手机打开网站用 js 回放的,写得非常粗糙
sduoduo233
19 小时 52 分钟前
@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
19 小时 51 分钟前
我现在正常用 AudioRelay ,缺点是每次电脑重启后无法自动连接,op 有做这个功能吗?
craftsmanship
19 小时 49 分钟前
牛哇 用 C 写 UI
achong
19 小时 45 分钟前
有 mac 版吗,电脑链接两个蓝牙耳机有点需求

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

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

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

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

© 2021 V2EX