现在直播大热。如何在零基础情况下,快速构建一个android直播客户端?主要需要哪些技术?
直播最重要的两个场景是收看直播和发布直播。
(1)收看直播
目前直播主要使用的协议是HLS和RTMP。
对于HLS,Google已经给出了成熟方案ExoPlayer。
关于ExoPlayer的一些资料:
简单地说,ExoPlayer是对android标准多媒体接口MediaPlayer、MediaCodec、MediaExtractor等的封装,更接近于一个产品化的播放器。开源项目中也有应用工程demo,可以快速上手。重点是,ExoPlayer支持HLS,只需要将HLS的服务器url传给ExoPlayer并启动播放即可。多媒体文件格式可以是m3u或m3u8。
对于RTMP,需要自主开发或者寻找一些开源库的支持,Google官方目前尚无解决方案。
目前IJKPlayer可以支持的比较全面
(2)发布直播
发布直播可以分为两部分:音视频录制、数据上传。
音视频录制:Android提供了标准接口AudioRecord和MediaRecorder,有大量的API和成熟代码范例可以参考。
数据上传:需要自主开发一些数据通道,一端作为output数据源给Recorder,另一端连接到服务器。
发布直播可以参考yasea,或者其他第三方开源