简介
实现了Android平台下局域网内语音通话APP。项目中实践了OpenSLES采集和播放PCM音频帧,通过Speex对PCM音频帧处理(降噪/增益/回声消除)并编码解码(实测单通道19Kbps,双通道40Kbps),局域网内通过UDP报文发现对方,并通过TCP传输编码的音频流。
技术分析
平台:Android 4.0 以上版本(理论上支持OpenSLES即可)
音频录制/播放: 基于Native层的OpenSLES,实现参考 https://bitbucket.org/victorlazzarini/android-audiotest
音频消噪增益/消除回声/编码解码:https://speex.org/docs/
局域网内的网络发现:UDP广播/端口监听
局域网内的网络通信:基于TCP的Mina框架(自实现网络编码/解码,应用层协议设计)
其他技术:JNI
项目地址
https://github.com/mars-ma/CallMe
网友评论