Android(安卓)之 使用VideoView播放视频
16lz
2021-01-24
阅读更多 1、在Android 中播放视频的方式有两种:
* 第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放、暂停、进度等;
通过SurfaceView 来显示视频内容;
优点:灵活性高,可以进行自定义;
缺点:难度比较大;
* 第二种方式是使用VideoView 来播放,这个类其实也是继承了SurfaceView 类,并且实现了MediaController.
MediaPlayerController 这个用于控制媒体播放的接口,另外在VideoView上还有一个用于对媒体播放进行控制
的面板,包括快进、快退、播放、暂停按钮以及一个进度条;
优点:比较简单,可以直接进行使用;
缺点:灵活性不高;
2、下面介绍VideoView的使用方法:
* setVideoViewPath(String path); 设置播放视频的路径;
* setVideoURL(Uri uri); 设置视频的URI
* start(); 开始播放;
* seekTo(int msec); 定位;
* pause(); 暂停播放;
* stop(); 停止播放;
* setMediaController(MediaController); 设置MediaController 对象;
媒体控制面版常用方法:MediaController:
* hide(); 隐藏MediaController;
* show(); 显示MediaController
* show(int timeout); 设置MediaController显示的时间,以毫秒计算,如果设置为0则一直到调用hide()时隐藏;
3、案例:实现视频播放效果:
java代码:
* 第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放、暂停、进度等;
通过SurfaceView 来显示视频内容;
优点:灵活性高,可以进行自定义;
缺点:难度比较大;
* 第二种方式是使用VideoView 来播放,这个类其实也是继承了SurfaceView 类,并且实现了MediaController.
MediaPlayerController 这个用于控制媒体播放的接口,另外在VideoView上还有一个用于对媒体播放进行控制
的面板,包括快进、快退、播放、暂停按钮以及一个进度条;
优点:比较简单,可以直接进行使用;
缺点:灵活性不高;
2、下面介绍VideoView的使用方法:
* setVideoViewPath(String path); 设置播放视频的路径;
* setVideoURL(Uri uri); 设置视频的URI
* start(); 开始播放;
* seekTo(int msec); 定位;
* pause(); 暂停播放;
* stop(); 停止播放;
* setMediaController(MediaController); 设置MediaController 对象;
媒体控制面版常用方法:MediaController:
* hide(); 隐藏MediaController;
* show(); 显示MediaController
* show(int timeout); 设置MediaController显示的时间,以毫秒计算,如果设置为0则一直到调用hide()时隐藏;
3、案例:实现视频播放效果:
java代码:
package com.example.mutilmediaapp_videoview;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.pm.ActivityInfo;import android.view.Menu;import android.view.Window;import android.view.WindowManager;import android.widget.MediaController;import android.widget.VideoView;public class MainActivity extends Activity { private VideoView video; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置播放视频时候不需要的部分 *//* 以下代码需要写在setContentView();之前 */ /* 去掉title */ requestWindowFeature(Window.FEATURE_NO_TITLE); /* 设置全屏 */ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); /* 设置屏幕常亮 *//* flag:标记 ; */ getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.main); /* 获取组件对象 */ video = (VideoView) findViewById(R.id.videoView); /* 获取MediaController对象,控制媒体播放 */ MediaController mc = new MediaController(this); video.setMediaController(mc); /* 设置URI , 指定数据 */ video.setVideoURI(Uri.parse("/mnt/sdcard/aa.mp4")); /* 开始播放视频 */ video.start(); /* 请求获取焦点 */ video.requestFocus(); } }
更多相关文章
- 一篇文章看明白 Android(安卓)Service 启动过程
- Android的HTTP基础与之使用HttpClient和HttpURLConnection
- Android(安卓)- 引用计数(sp、wp、Refbase)
- 从一篇Blog看两个并发编程错误
- Android文件相关:RandomAccessFile介绍与使用demo
- Android网络请求框架AsyncHttpClient (android-async-http)介绍
- Android(安卓)Intent 对象详解
- 转:编写高效的Android代码
- android设备与蓝牙模块之间交互(蓝牙命令,收发)的两种方式,附DEMO下