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播放流媒体流程。