ijk本不支持直接播裸流,本想自行增加一個(gè)協(xié)議去處理,同事發(fā)現(xiàn)AndroidIO可以支持。
1.新建類實(shí)現(xiàn)AndroidIO,如圖

androidio.png
2.設(shè)置AndroidIO 并且Uri增加協(xié)議頭
((IjkMediaPlayer) mMediaPlayer).setAndroidIOCallback(new FileAndroidIO());
mUri = Uri.parse("ijkio:androidio:" + mUri.toString());
3.增加白名單 ijkio
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "protocol_whitelist", "ijkio,crypto,file,http,https,tcp,tls,udp");
4.可能遇到的問題
1).引用v8架構(gòu) ffmpeg有bug
內(nèi)含解決辦法https://github.com/bilibili/ijkplayer/issues/4759
2).moov atom not found
應(yīng)該是AndroidIO 中seek方法有問題,需要返回文件長(zhǎng)度
待上傳代碼工程.