安卓播放内存中的视频数据


需求


通过网络获取了视频文件的一小块, 需要直接播放出来.

麻烦


安卓的 MediaPlayer 之类的上层接口, 只接受文件路径或者网络 url 作为输入. 翻了好久 API Guides, 谷歌百度了好多次. 到处都在讲这些上层接口.

解决方案


今天终于发现了MediaCodec这个底层接口.

试用体验


折腾了一晚上的结果: 视频文件, 是一个容器. 包装了视频和音频数据. 往MediaCodec的inputBuffer里送的数组, 不应该是视频文件, 而是从文件解析提取(去掉包装)出来的原始视频或音频数据.
所以还要做容器的解析…工作量好大, 跟想象的不一样T.T