网友通过本文主要向大家介绍了影音先锋视频播放器,暴风影音视频播放器,影音视频播放器,qq影音视频播放器,吉吉影音视频播放器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
手机影音6--视频播放器的基本功能(3),6--基本功能

1.自定义VideoView
1_自定义VideoView-增加设置视频大小方法
public class VideoView extends android.widget.VideoView {
/**
* Android系统在更加xml布局找这个类,并且实例化的时候,用该构造方法实例化
*
* @param context
* @param attrs
*/
public VideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public VideoView(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
}
/**
* 设置视频画面的宽和高
* @param videoWidth
* @param videoHeight
*/
public void setVideoSize(int videoWidth, int videoHeight) {
ViewGroup.LayoutParams layoutParams =getLayoutParams();
layoutParams.width = videoWidth;
layoutParams.height = videoHeight;
setLayoutParams(layoutParams);
}
}
2_得到屏幕高和宽方法
在播放器中
wm = (WindowManager) getSystemService(WINDOW_SERVICE); screenWidth = wm.getDefaultDisplay().getWidth(); screenHeight = wm.getDefaultDisplay().getHeight(); DisplayMetrics displayMetrics = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); screenWidth = displayMetrics.widthPixels; screenHeight = displayMetrics.heightPixels;
3_视频默认和全屏
一播放起来,在准备好了中设置视频播放默认
/**
* true全屏
* flase默认
*/
private boolean isFullScreen = false;
/**
* 视频全屏和默认
* @param type
*/
public void setVideoType(int type){
switch (type) {
case SCREEN_FULL:
videoview.setVideoSize(screenWidth, screenHeight);
isFullScreen = true;
btn_switch_screen.setBackgroundResource(R.drawable.btn_screen_dafult_selector);
break;
case SCREEN_DEFULT:
//视频的宽
int mVideoWidth = videoWidth;
//视频的高
int mVideoHeight = videoHeight;
//屏幕的宽
int width = screenWidth;
//屏幕的宽
int height = screenHeight;
if (mVideoWidth > 0 && mVideoHeight > 0) {
if ( mVideoWidth * height > width * mVideoHeight ) {
//Log.i("@@@", "image too tall, correcting");
height = width * mVideoHeight / mVideoWidth;
} else if ( mVideoWidth * height < width * mVideoHeight ) {
//Log.i("@@@", "image too wide, correcting");
width = height * mVideoWidth / mVideoHeight;
} else {
//Log.i("@@@", "aspect ratio is correct: " +
//width+"/"+height+"="+
//mVideoWidth+"/"+mVideoHeight);
}
}
videoview.setVideoSize(width, height);
btn_switch_screen.setBackgroundResource(R.drawable.btn_screen_full_selector);
isFullScreen = false;
break;
}
}
4_屏幕保持不锁屏
//设置屏幕不锁屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
5_点击按钮的时候实现切换播放模式
case R.id.btn_switch_screen:
if(isFullScreen){
setVideoType(SCREEN_DEFUALT);
}else{
setVideoType(SCREEN_FULL);
}
break

