Android视频播放的两种方式介绍

来源:互联网 发布:淘宝女装店铺策划书 编辑:程序博客网 时间:2024/04/29 20:48
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代码:


  1. package com.example.mutilmediaapp_videoview;    
  2. import android.net.Uri;  
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.content.pm.ActivityInfo;  
  6. import android.view.Menu;  
  7. import android.view.Window;  
  8. import android.view.WindowManager;  
  9. import android.widget.MediaController;  
  10. import android.widget.VideoView;  

  11. public class MainActivity extends Activity {   
  12.     private VideoView video;  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.        super.onCreate(savedInstanceState);  
  15.           
  16.         /* 设置播放视频时候不需要的部分 *//* 以下代码需要写在setContentView();之前 */  
  17.           
  18.        /* 去掉title */  
  19.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  20.           
  21.         /* 设置全屏 */  
  22.         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
  23.           
  24.         /* 设置屏幕常亮 *//* flag:标记 ; */  
  25.         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  
  26.           
  27.         setContentView(R.layout.main);  
  28.           
  29.         /* 获取组件对象 */  
  30.         video = (VideoView) findViewById(R.id.videoView);  
  31.           
  32.         /* 获取MediaController对象,控制媒体播放 */  
  33.         MediaController mc = new MediaController(this);    
  34.         video.setMediaController(mc);  
  35.           
  36.         /* 设置URI , 指定数据 */  
  37.         video.setVideoURI(Uri.parse("/mnt/sdcard/aa.mp4"));  
  38.   
  39.         /* 开始播放视频 */          video.start();  
  40.           
  41.         /*  请求获取焦点 */  
  42.         video.requestFocus();  
  43.           }  
  44. }  
0 0