自定义VideoView全屏显示播放
来源:互联网 发布:asp微信扫码支付源码 编辑:程序博客网 时间:2024/06/05 03:47
一、通过VideoView播放视频的步骤:
1、在界面布局文件中定义VideoView组件
2、调用VideoView的如下两个方法来加载指定的视频
setVidePath(String path):加载path文件代表的视频
setVideoURI(Uri uri):加载uri所对应的视频
1、在界面布局文件中定义VideoView组件
2、调用VideoView的如下两个方法来加载指定的视频
setVidePath(String path):加载path文件代表的视频
setVideoURI(Uri uri):加载uri所对应的视频
3、调用VideoView的start()、stop()、psuse()方法来控制视频的播放
二、实例:
1、xml布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.WelcomeActivity"> <com.cnnews.cyh.appnews.widget.CustomVideoView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/welcome_videoview" /> <Button android:layout_width="150dp" android:layout_height="35dp" android:layout_marginBottom="20dp" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:background="@drawable/head_bt_bg" android:onClick="btn_login" android:text="进入主页" android:textColor="#ffffff" android:textSize="16sp"/></RelativeLayout>2、自定义VideoView类--CustomVideoView
因为在VideoView源码的OnMeasure方法里对这个长宽比进行了处理。这就是为什么长宽比不能改变的原因了。我们把其中处理的代码屏蔽掉,视频大小就可以随着VideoView的长宽改变而改变了。
package com.cnnews.cyh.appnews.widget;import android.content.Context;import android.media.MediaFormat;import android.media.MediaPlayer;import android.util.AttributeSet;import android.view.KeyEvent;import android.widget.VideoView;import java.io.InputStream;/** * Created by cyh on 2016/7/22. */public class CustomVideoView extends VideoView { public CustomVideoView(Context context) { super(context); } public CustomVideoView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {//重写onMeasure方法,改变长宽 super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = getDefaultSize(0,widthMeasureSpec); int height = getDefaultSize(0,heightMeasureSpec); setMeasuredDimension(width,height); } @Override public void setOnPreparedListener(MediaPlayer.OnPreparedListener l) { super.setOnPreparedListener(l); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); }}
3、在类中使用
welcome_videoview = (CustomVideoView)findViewById(R.id.welcome_videoview); welcome_videoview.setVideoURI(Uri.parse("android.resource://"+this.getPackageName()+"/"+R.raw.video));//获取视频 welcome_videoview.start(); welcome_videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {//设置监听事件,播放完后再次启动播放 @Override public void onCompletion(MediaPlayer mp) { welcome_videoview.start(); } });
0 0
- 自定义VideoView全屏显示播放
- 自定义videoview实现全屏播放
- videoview全屏播放
- VideoView-全屏播放
- videoview全屏播放
- VideoView实现半屏全屏视频播放,自定义MediaView
- 使VideoView全屏显示
- android 自定义VideoView全屏显示 不会出现黑条
- 使用VideoView全屏播放视频文件
- android利用VideoView实现视频全屏播放
- VideoView播放视频全屏的方法
- Android之VideoView窗口/全屏播放
- VideoView实现全屏和横屏播放
- 自定义VideoView播放网络视频
- 安卓videoView 横屏,全屏显示
- Android 播放视频(四)VideoView全屏视频播放
- android VideoView播放工程raw下的视频+全屏问题
- 用原生VideoView进行全屏播放时的问题
- http://blog.csdn.net/qinjuning/article/details/7607214
- 现有的身份管理方案
- finished with non-zero exit value 2
- Java 递归列出目录下的文件以及子目录(未测试)
- 状态模式——State (更好的实现状态机)
- 自定义VideoView全屏显示播放
- 浅谈Java的垃圾收集机制
- 学习总结-2016-07-22
- 欧拉函数
- lintcode lowest-common-ancestor 最近公共祖先
- 白菜之几种基本数据类型随机数生成的小结!
- web开发表单的制作
- java执行系统cmd命令(未测试)
- java异常机制剖析