之前有个基于java和jni共同实现的版本,juv需要授权,语音数据在java层和jni层不停互转。
这个版本,完全在jni层实现,java只处理方法调用和事件回调。
OpenSL ES,从API 9开始支持的技术,通过这个标准,Android已经完全可以在native层采集和播放音频。
libspeex,同上一个项目一样。
librtmp,著名的rtmpdump项目所开发的rtmp库。
项目地址:https://github.com/illuspas/SayHi完成度:采集编码上传完成,下载解码播放待实现(最近太忙了)
剩下的也不多,欢迎pull Requests 😀
—————————-7月20日分割线————————————
简单的实现了播放流程。
注:本例及iOS版SayHey皆为采集播放、编解码、传输功能库及演示程序。完整的voip还应该包括用户系统,回话管理,消息收发等,这都不在本例研究范畴。
商业版流媒体服务端可以选择fms,wowza,evostreamer
开源版:red5,nginx-rtmp-module,srs
用户与回话管理可以搭配OpenFire(XMPP协议)实现。
使用Node.js+Socket.io也是不错的选择,目前撸主有个项目就是使用这套方案,扩展性,定制性都非常强。跨平台支持优势尤其体现在web上都完全超越openfire。