如何通过sndcpy实现Android音频转发?
sndcpy是一款专注于Android音频实时转发的开源工具,无需设备root权限,仅需开启USB调试即可将Android 10及以上设备的音频流传输到电脑播放。作为轻量级解决方案,它填补了屏幕镜像工具在音频同步方面的空白,支持GNU/Linux、Windows和macOS多平台,是开发者调试音频、内容创作者直播推流的实用工具。
一、核心功能解析🔊
1.1 跨平台兼容性
支持三大主流操作系统,通过统一的命令行接口实现一致的用户体验。Windows用户可通过包管理器快速安装,Linux与macOS用户则可直接运行脚本文件。
1.2 低延迟音频传输
采用Android 10原生的音频捕获API,结合VLC媒体播放器的实时解码能力,实现毫秒级延迟的音频转发。设备与电脑音量可独立调节,互不干扰。
1.3 免root设计
利用Android系统的无障碍服务机制,通过USB调试授权实现音频捕获,避免修改系统分区带来的安全风险和保修问题。
二、三步配置法实现音频转发🔌
2.1 环境准备
| 系统平台 | 安装命令 | 备注 |
|---|---|---|
| Windows | scoop install sndcpy |
需先安装Scoop包管理器 |
| Ubuntu/Debian | sudo apt install adb vlc |
从系统仓库获取依赖 |
| macOS | brew install android-platform-tools vlc |
使用Homebrew安装 |
2.2 设备连接与授权
- 启用Android设备开发者选项(设置→关于手机→连续点击版本号7次)
- 开启USB调试(开发者选项→USB调试)
- 通过USB连接电脑,在设备上确认调试授权弹窗
2.3 启动音频转发
# 1. 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/sn/sndcpy
cd sndcpy
# 2. 安装应用到设备(首次运行)
adb install -r app/build/outputs/apk/debug/app-debug.apk
# 3. 启动转发服务(自动调用VLC播放)
./sndcpy
Windows用户执行命令时需省略路径前的./前缀,如直接运行sndcpy。
三、五大实用场景📱
3.1 移动应用音频调试
开发者可在电脑端实时监听应用内音效、背景音乐,配合日志分析快速定位音频异常问题。特别适合游戏开发中多声道音效的同步测试。
3.2 手游直播推流
通过OBS Studio捕获VLC播放窗口,实现手机游戏音频与麦克风解说的混合录制,提升直播内容的专业度。
3.3 视频会议扩展
将手机端语音通话转发至电脑音响,解决笔记本内置麦克风收音不清的问题,适用于Zoom、Teams等会议软件。
3.4 多设备音频监控
配合adb devices命令识别多台连接设备,通过指定序列号实现对不同Android设备的音频并行监控:
# 查看已连接设备
adb devices
# 转发指定设备音频
./sndcpy 123456789ABCDEF
3.5 无障碍辅助应用
为视觉障碍用户提供电脑端放大音量的解决方案,结合屏幕阅读器实现多感官信息同步。
四、技术原理解析
4.1 音频流传输机制
sndcpy的工作流程类似"数字对讲机":
- 设备端:Android应用通过
MediaProjectionAPI捕获系统音频流,编码为PCM格式 - 传输层:通过ADB端口转发建立TCP连接,将原始音频数据发送至电脑
- 接收端:VLC播放器解码音频流并通过声卡输出,整个过程延迟控制在200ms以内
4.2 核心代码结构
app/src/main/java/com/rom1v/sndcpy/
├── MainActivity.java # 主界面与权限申请
└── RecordService.java # 音频捕获与网络传输核心逻辑
五、常见问题解决
5.1 VLC连接失败
现象:终端显示"main stream error: connection error"
解决方案:
- 关闭VLC所有实例后重试
- 手动指定VLC路径:
SNDCPY_VLC=/usr/bin/vlc ./sndcpy - 更新VLC至3.0.16以上版本
5.2 无音频输出
排查步骤:
- 确认设备媒体音量未静音
- 检查应用是否允许音频捕获:设置→应用→sndcpy→权限→启用"音频捕获"
- 验证VLC是否选择正确音频设备:工具→偏好设置→音频→输出模块
5.3 高延迟问题
优化方案:
# 设置VLC低延迟模式
vlc --network-caching=100
将缓存值调整至100-300ms区间,平衡流畅度与延迟表现
六、生态拓展与组合应用
6.1 与scrcpy协同工作
实现音画同步镜像:
# 启动屏幕镜像
scrcpy --max-size=1080 &
# 启动音频转发
./sndcpy
两者配合使用可构建完整的Android镜像解决方案,适用于教学演示、远程协助等场景。
6.2 自动化脚本扩展
通过环境变量自定义配置:
# 指定自定义ADB路径
export ADB=/path/to/specific/adb
# 修改传输端口
export SNDCPY_PORT=27183
# 启动转发
./sndcpy
七、项目贡献指南
7.1 代码提交规范
- 遵循Android开发规范,使用Kotlin编写新功能
- 提交前运行
./gradlew lint确保代码质量 - PR需关联issue并提供功能测试报告
7.2 社区支持渠道
- 问题反馈:项目仓库Issues板块提交bug报告
- 功能建议:通过Discussions参与特性讨论
- 实时交流:加入Telegram群组(搜索"sndcpy-dev")
八、卸载与清理
如需从设备彻底移除应用:
adb uninstall com.rom1v.sndcpy
清理电脑端临时文件:
rm -rf ~/.cache/sndcpy
本项目采用Apache 2.0开源协议,允许商业使用但需保留原始版权声明。建议定期通过git pull更新代码,获取最新功能改进与bug修复。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00