Android – 视频播放
关于Android的视频播放技术我大体知道的有五种:
①VideoView、②SurfaceView结合MediaPlayer③ijkPlayer④系统自带的播放器⑤Vitamio(针对企业收费)。
前四种我都接触过,最后一种,没怎么用过。O(∩_∩)O~~
VideoView: 是android 系统提供的一个媒体播放显示和控制的控件。
先说一下VideoView的使用:
1.在布局里面使用该控件;
2.找到控件并且设置相应的资源;
3.设置视屏播放的控制器;
4.调用视频播放的方法;
package com.example.cm.videodemo.videoview;
import android.content.ContentResolver;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.MediaController;
import com.example.cm.videodemo.R;
/**
* 利用VideoView实现视屏播放
* 1.在布局里面添加VideoView的控件
* 2.设置视屏播放的资源
* 3.设置视屏播放的进度条
*
* 需要注意的是:videoview播放视屏会获得视屏本来的高度不会显示全屏
* 如果需要显示全屏,需要重写控件的测量方法
*/
public class VideoViewUseActivity extends AppCompatActivity {
private FullScreenVideoView videoView;
//设置视屏播放的控制器,这个控制器是自带的
private MediaController mediaController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_view_use);
videoView = (FullScreenVideoView) findViewById(R.id.videoview_usepalyer);
Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/" + R.raw.video_test);
mediaController=new MediaController(this);
//设置视频控制器
videoView.setMediaController(mediaController);
//设置视屏的路径
videoView.setVideoURI(uri);
//videoView.setVideoPath(PathUtils.fileUrl());
//开启视屏播放的方法
videoView.start();
}
}
自定义全屏的VideoView:
package com.example.cm.videodemo.videoview;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.VideoView;
/**
* 设置一个全屏的videoview
*/
public class FullScreenVideoView extends VideoView{
public FullScreenVideoView(Context context) {
super(context);
}
public FullScreenVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int newWidth=MeasureSpec.getSize(widthMeasureSpec);
int newHight=MeasureSpec.getSize(heightMeasureSpec);
//设置新的宽高
setMeasuredDimension(newWidth,newHight);
}
}