• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 手机影音6--视频播放器的基本功能(3),6--基本功能

手机影音6--视频播放器的基本功能(3),6--基本功能

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了影音先锋视频播放器,暴风影音视频播放器,影音视频播放器,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

  

  

  

  

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 手机影音8--视频播放器的高级功能(1),8--高级功能
  • 手机影音9--视频播放器的高级功能(2),9--高级功能
  • 手机影音7--视频播放器的基本功能(4),7--基本功能
  • 手机影音5--视频播放器的基本功能(2),5--基本功能
  • 手机影音6--视频播放器的基本功能(3),6--基本功能

相关文章

  • 2017-05-26Oracle监听与tnsnames文件标准配置解决监听无法连接问题
  • 2017-07-22Android 6.0 Phone"通话显示"查询流程
  • 2017-05-26谷歌电子市场3--应用,谷歌电子市场3--
  • 2017-05-26Android View体系(九)自定义View
  • 2017-05-26匿名社交1--登陆,匿名社交1--
  • 2017-05-26Solaris IPMP两种配置方法
  • 2017-05-26IDA动态调试Android的DEX文件
  • 2017-05-26有了malloc/free,为什么还要new/delete?
  • 2017-05-227.5.1 WebView(网页视图)基本用法
  • 2017-05-26Android开发学习之路--传感器之初体验

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • win通过dos配置注册列表
    • 5.2.4 Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
    • getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir(),mediacachefiles
    • 广播,本地广播(),广播
    • Android Doze模式源码分析,androiddoze
    • Android群英传笔记系列二view的绘制(一),android群英
    • 用Kotlin实现Android定制视图(KAD 06),kotlinandroid
    • 在不同Activity之间传递数据的四种常用方法,activity四种
    • Android 6.0 系统棉花糖新的特性和功能
    • Android窗口机制分析与UI管理系统,androidui

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有