发布于 

我的音频流转解决方案

困扰

笔者现在住在大学的宿舍。为了整体的氛围和谐,宿舍自然是不常外放的。不外放,就需要戴耳机。电脑连着有线耳机,手机连着蓝牙耳机,但是这些耳机由于型号较旧,不支持同时连接到多个设备。于是会出现这样一个问题——手机、电脑、平板的声音没法同时进入耳朵,如何在宿舍只有一个耳机的情况下,让多个设备的声音都能自然进入耳朵,就像在空气中外放一样?

鉴于笔者电脑连接的是有线耳机、不需要充电,将所有声音传入电脑的有线耳机是一个比较好的想法。

基于网络传输的方案

目前我找到的基于内网传输的方案中,最佳的一个是 Audio Relay。但是这是一个付费软件,其免费版只能提供有限时长、单一设备音频转发的功能。

  1. 丢包多。在笔者用 5GHz WLAN 热点共享给手机后,丢包严重。即使有 Buffer,但是丢包仍然难以规避。
  2. 多设备灾难。由于单一设备音频转发,只能让一台手机同时作为客户端和服务器,多设备丢包加上丢包,完全是灾难性的。
  3. 缺乏设置。PC 端的 Audio Relay 没有音频设置,无法根据特定网络情况配置合适的音频参数。
  4. 部分应用无法传音。由于 Android 系统版本兼容性和隐私设置,部分敏感应用,如微信、支付宝等软件无法传输声音。
  5. 本地方案聊胜于无。PC 到手机可以用 USB 网络共享,但是手机到 PC 不可以。

基于本地 USB 传输的方案

在朋友的推荐下,我重新回顾了 scrcpy。原来它可以只传声音!

只需要 scrcpy --no-video 即可,结束。

但是这样就够了吗?是否还能够做出优化?

模拟真实空气环境

  1. 手机传来的音频是否能进行后处理?是否可以混响?是否可以挂 EQ?
  2. 是否能够基于不同的麦克风(如耳机、手机、电脑、外置)经过算法处理再发送到耳机监听,实现类似“通透模式”的功能?
  3. 怎么降低时延?怎么规避丢包?能配置不同的 Buffer、音频压缩比例等参数吗?

对标 Audio Relay

  1. 音频是否能够同时转发到多个设备?是不是可以做一个工作台连接不同设备,音频就能够多路传送?
  2. 是否让用户能选择“复制”和“仅传输”?
  3. 音频能否进行录制?存盘?
  4. scrcpy 基于 ADB 调试,背后具有安全风险。是否有更安全和更高效的解法?
  5. 引入 GUI 与方便的配置页面,也能用无头模式减少资源占用。

后续会写一个针对这些功能的小软件。


本站由 叶菡茵 使用 Stellar 主题创建。
不建议将文章内容用于训练 LLM,以免影响语料质量。
除特别声明外,本博客所有文章均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。