局域网内的Android语音通话实践

作者: Mars_M | 来源:发表于2017-04-07 13:04 被阅读276次

简介

实现了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

其中audio模块通过jni从native层获取音频流或播放音频流

callme模块实现通信Service及UI交互

相关文章

网友评论

    本文标题:局域网内的Android语音通话实践

    本文链接:https://www.haomeiwen.com/subject/ywcqattx.html