VLC目錄結構
在ubuntu下編譯vlc完成後,就可以將vlc-android部分導入android studio或者eclipse當中,完成java端的代碼定製修改和編譯,也可以自己將需要的部分添加進入android工程,下面是本人根據實際需要完成的android工程,目錄結構如下所示:
動態庫:
libiomx-gingerbread.so,libiomx-hc.so,libiomx-ics.so,libvlcjni.so是在ubuntu下編譯的native底層so庫,libvlcjni則是供libVLC.java調用的,由於本人只需要arm-v7的架構支持,所以只添加了改so,在android studio當中如果在main當中直接添加jniLibs文件夾,同時添加armeabi-v7a,則編譯時會直接將該目錄下的so打包進入apk當中。
LibVLC
LibVLC.java是核心類,它是用來控制音視頻播放的,同時也是java和底層代碼的連接橋樑,它其中調用了很多jni代碼,來訪問ffmpeg native函數。
播放控制流程
初始化
設置流媒體uri,同時初始化VideoView,代碼如下所示:
String video = "rtmp://live.hkstv.hk.lxdns.com/live/hks";
SurfaceView v = (SurfaceView) findViewById(R.id.surface);
mVideoView = new VideoView(v, video, this);
播放
@Override
protected void onResume() {
super.onResume();
mVideoView.createPlayer();
//mVideoView1.createPlayer();
}
停止
@Override
protected void onDestroy() {
super.onDestroy();
mVideoView.releasePlayer();
// mVideoView1.releasePlayer();
}
總結,其實寫好VideoView後操作起來很簡單,可以參考demo,其實也可以根據需要實現自己的VideoView,來渲染顯示流媒體,後續博客繼續介紹vlc播放流媒體流程。