跳到主要内容

USB 独占输出(实验性)

本功能说明仅适用于 Android 版。Windows/Linux 使用系统桌面音频输出路径,不适用本文的 Android USB 独占驱动步骤。

USB 独占输出用于将弥乐解码后的音频发送到兼容的 USB DAC。当前实现仍是实验性功能,不能保证所有手机、转接头或 DAC 均可工作;系统能够识别设备,不代表弥乐当前驱动支持它。

当前支持范围​

  • USB 全速或高速设备,当前路径使用首个配置中的 UAC1 AudioStreaming 接口。
  • Type I 双声道 PCM,设备描述符需提供支持的采样率和足够大的端点包长。
  • 自适应或同步等时 OUT 端点;高速多事务端点不支持。
  • PCM 描述符每采样 2、3 或 4 字节,16~32 位有效位数。
  • UAC2、异步反馈端点、DSD 和多声道当前不支持。

重要限制:播放链路目前实际使用 PCM16。写入 24/32 位容器时只是在低位补零,不会恢复高位深源数据,也不宣称 bit-perfect。播放器音量、DSP、混音和解码转换也可能改变输出样本。由于本地静音时钟与 DAC 的 USB 时钟并非同一个时钟,长期漂移和欠载仍需要实际硬件验证。

连接与播放​

  1. 确认手机支持 USB Host/OTG,准备可靠的 OTG 转接头和 DAC。
  2. 先连接 DAC,再打开弥乐播放设备选择器并进入 USB 独占面板。
  3. Android 弹出 USB 访问授权时选择允许。
  4. 查看设备是否可接管;若设备描述符不兼容,面板会显示失败原因。
  5. 开始或恢复播放,检查 DAC 是否出声;改变采样率或曲目格式时可能重新配置 USB 流。

面板关闭后输出可继续保持。暂停时已提交的 USB 数据还可能继续播放短暂时间;seek 会丢弃未提交的旧缓冲。断开设备、主动退出、传输错误或格式变化时应用会尝试释放 USB 流并恢复本机输出。

USB 独占与自动混音、弥乐 LAN 投放/一起听、DLNA、MiPlay 等输出路径互斥。切换到这些路径前先结束 USB 输出。

兼容性排查​

  • 更换 OTG 转接头或确认手机支持 USB Host/OTG;部分 USB-C 线只充电,不传数据。
  • 先连接设备再打开 USB 输出面板;断开后重新连接并重新授权。
  • 如果面板能看到设备但拒绝接管,查看系统支持信息。UAC2、异步反馈、多事务端点、多声道与 DSD 当前无法通过设置绕过限制。
  • 检查系统媒体音量以及 DAC 自身音量/静音状态。
  • 如果仍失败,在“设置 → 关于”导出 MeloX 全部日志。日志包含最近一次 USB 尝试的速度查询、音频接口描述符、解码格式和失败原因,不采集 USB 序列号字符串;分享前仍需检查整份日志中的其他隐私信息。

单元测试和 APK 构建不能替代真实 DAC 验收。实际持续出声、设备兼容性和长时间时钟稳定性仍取决于手机与硬件组合。