Android音频传输框架
Android 平台的音频传输项目,常常卡在网络延迟和同步问题上。android 音频传这个项目就把几个关键点都得挺不错,像是AudioRecord和AudioTrack的组合使用、局域网环境下的 Socket 通信,甚至连多设备同步也有考虑。
AudioRecord的使用方式比较简单粗暴,配置好采样率、通道数后,直接read()
就能拿到音频数据。配套的AudioTrack也差不多,配置完参数后write()
写数据进去,再play()
播放。整个流程顺下来顺滑。
局域网传输这块,它用了Socket,你可以选TCP稳定点,或者UDP追求实时性,看你场景需求。音频是原始 PCM 的,你也可以加点压缩,比如 AAC,省点带宽。
要注意同步问题,不然你这边说话那边还在等,体验就差了。可以预设一点缓冲区,做个延时控制,还能提高播放稳定性。
网络编程那块写得还挺干净,Socket
的创建、连接、监听都有考虑,还做了线程分离,收发互不干扰。错误这块也没落下,断网重连、设备找不到等都有兜底逻辑。
另外,记得开权限,RECORD_AUDIO
和INTERNET
这两个少不了。不然设备权限一堵,录都录不了。
UI 方面没太展开说,但你要是真要上线用,建议搞个简单界面,能控制录音、停止、连接啥的,体验会好多。
,如果你在搞 Android 上的语音对讲、音频监控或者音频流推送这类需求,这个项目还蛮值得一看的。代码不复杂,逻辑也清晰,改起来挺上手。
如果你想了解更多局域网音频通信的思路,可以看看《局域网音频即时传输程序设计》,思路上挺接近。
51.53KB
文件大小:
评论区