您的位置:首页 > 移动开发 > Android开发

#Android笔记#利用第三方播放器vitamio实现悬浮播放效果

2014-12-12 09:50 471 查看
最近面试,面试官问了我关于以前做过的项目的问题,我居然可耻的忘记了,因此有必要重新梳理一下。

达成这个目标大概分为三个步骤:1.创建一个悬浮窗口;2.将vitamio的videoview嵌进去;3.播放视频。

首先,先创建一个悬浮窗口(部分参数已经声明过了):

private void createFloatView() {

wmParams = new WindowManager.LayoutParams();// 得到WindowManager.LayoutParams对象,用来设置窗口的参数
mWindowManager = (WindowManager) getApplication().getSystemService(
Context.WINDOW_SERVICE);// 获得windowmanager对象

wmParams.type = LayoutParams.TYPE_PHONE;// 设置这个view即将放置的位置
wmParams.format = PixelFormat.RGBA_8888;
wmParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE;

// 设置悬浮窗口长宽数据
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;

LayoutInflater inflater = this.getLayoutInflater();
// 将layout绑定到窗口
mFloatLayout = (LinearLayout) inflater.inflate(R.layout.float_layout,
null);

mWindowManager.addView(mFloatLayout, wmParams);
}
这样的话一个悬浮窗口就创建完毕了!

接下来,就是要将videoview嵌套进去了,首先,将事先准备好的vitamio工程文件(可在官网上下载)设置为Android Library,引入到项目中。(两者在同一目录下)

然后开始嵌套(把这段代码写到createFloatView()中):

mFloatView = (VideoView) mFloatLayout.findViewById(R.id.vv2);//播放视频的
pb = (ProgressBar) mFloatLayout.findViewById(R.id.probar);

Vitamio.initialize(Read.this);//使用vitamio项目必须加上这句初始化的语句
mFloatView.setMediaController(new io.vov.vitamio.widget.MediaController(Read.this));//设置viodeview的控制器

mFloatView.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {

@Override
public void onBufferingUpdate(MediaPlayer arg0, int percent) {
// TODO Auto-generated method stub
// loadRateView.setText(percent + "%");
}
});
mFloatView.setOnInfoListener(new OnInfoListener() {

@Override
public boolean onInfo(MediaPlayer arg0, int what, int extra) {
// TODO Auto-generated method stub
switch (what) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
if (mFloatView.isPlaying()) {
mFloatView.pause();
pb.setVisibility(View.VISIBLE);

}
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
mFloatView.start();
pb.setVisibility(View.GONE);

break;
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:

break;
}
return true;

}

});


最后一步,就是使用这个方法了!

createFloatView();
mFloatView.setVideoURI(Uri.parse(path);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: