前言
在 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码 文章中为大家讲解了如何在Ubuntu环境下编译VLC-Android源码,这篇文章就为大家讲解如何使用编译好的 libvlc-3.0.0.aar 包来编写一个视频播放器项目源代码
本博客同步发布于XueLong的博客
代码实现
build.gradle 中配置使用 libvlc-3.0.0.aar 包
//---1、---
repositories{
flatDir{
dirs 'libs'
}
}
dependencies {
...
//---2、---
compile(name:'libvlc-3.0.0',ext:'aar')
}
界面布局很简单,一个FrameLayout中嵌套一个SurfaceView。
布局实现
Activity或者Fragment要实现 IVLCVout.OnNewVideoLayoutListener 接口,实现 onNewVideoLayout方法,在 onNewVideoLayout 方法中根据屏幕大小来动态控制视频播放显示区域大小。
代码实现
public class VLCActivity extends BaseActivityForFullScreen implements IVLCVout.OnNewVideoLayoutListener {
private static final String SAMPLE_URL = "http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_640x360.m4v";
SurfaceView surfaceView = null;
FrameLayout frameLayout = null;
LibVLC mLibVLC = null;
MediaPlayer mMediaPlayer = null;
IVLCVout mIVLCVout = null;
View.OnLayoutChangeListener onLayoutChangeListener = null;
Handler handler = new Handler();
int mVideoHeight = 0;
int mVideoWidth = 0;
int mVideoVisibleHeight = 0;
int mVideoVisibleWidth = 0;
int mVideoSarNum = 0;
int mVideoSarDen = 0;
static final int SURFACE_BEST_FIT = 0;
static final int SURFACE_FIT_SCREEN = 1;
static final int SURFACE_FILL = 2;
static final int SURFACE_16_9 = 3;
static final int SURFACE_4_3 = 4;
static final int SURFACE_ORIGINAL = 5;
static int CURRENT_SIZE = SURFACE_BEST_FIT;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setCont