Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> android控件之VideoView建立自己的播放器

android控件之VideoView建立自己的播放器

編輯:Android開發實例

 

 簡介

  用來播放視頻文件。該VideoView類可以加載各種來源的圖像(如資源或內容提供商),需要計算它從視頻測量,以便它可以在任何布局管理器使用,並提供諸如縮放和著色的各種顯示選項。在其他的平台上面可能VideoPlayer開發是一個比較有挑戰性的工作,但是在Android上面VideoPlayer的開發,基本上可以做到傻瓜式啦。本文簡單對VideoPlayer的開發進行簡單的介紹。

 

實例

1.布局文件

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout 
  3.   xmlns:android="http://schemas.android.com/apk/res/android" 
  4.   android:layout_width="wrap_content" 
  5.   android:layout_height="wrap_content"> 
  6.     
  7.   <VideoView android:id="@+id/videoview" 
  8.     android:layout_width="fill_parent" 
  9.   android:layout_height="wrap_content" 
  10. android:layout_centerInParent="true" 
  11.   /> 
  12. </LinearLayout> 

2.Java代碼

 

  1. package com.wjq;  
  2.  
  3. import android.app.Activity;  
  4. import android.content.pm.ActivityInfo;  
  5. import android.media.MediaPlayer;  
  6. import android.net.Uri;  
  7. import android.os.Bundle;  
  8. import android.os.Environment;  
  9. import android.util.Log;  
  10. import android.widget.MediaController;  
  11. import android.widget.VideoView;  
  12. public class VideoViewDemo extends Activity implements MediaPlayer.OnErrorListener,MediaPlayer.OnCompletionListener{  
  13.  public static final String TAG = "VideoPlayer";  
  14.  private VideoView mVideoView;  
  15.  private Uri mUri;  
  16.  private int mPositionWhenPaused = -1;  
  17.  
  18.  private MediaController mMediaController;  
  19.  
  20.  /* (non-Javadoc)  
  21.   * @see android.app.Activity#onCreate(android.os.Bundle)  
  22.   */ 
  23.  @Override 
  24.  protected void onCreate(Bundle savedInstanceState) {  
  25.   // TODO Auto-generated method stub  
  26.   super.onCreate(savedInstanceState);  
  27.   setContentView(R.layout.videoview);  
  28.     
  29.   this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
  30.     
  31.   mVideoView = (VideoView)findViewById(R.id.videoview);  
  32.  
  33.  
  34.    
  35.  
  36. //文件路徑  
  37.  
  38.   mUri = Uri.parse(Environment.getExternalStorageDirectory() + "/ziranyouli.3gp");  
  39.  
  40.         //Create media controller  
  41.         mMediaController = new MediaController(this);  
  42.  
  43.   //設置MediaController  
  44.         mVideoView.setMediaController(mMediaController);  
  45.  
  46.  }  
  47.  
  48.    
  49.  
  50. //監聽MediaPlayer上報的錯誤信息  
  51.  
  52.  @Override 
  53.  public boolean onError(MediaPlayer mp, int what, int extra) {  
  54.   // TODO Auto-generated method stub  
  55.   return false;  
  56.  }  
  57.  
  58.    
  59.  
  60. //Video播完的時候得到通知  
  61.  
  62.  @Override 
  63.  public void onCompletion(MediaPlayer mp) {  
  64.   this.finish();  
  65.  }  
  66.    
  67.  
  68.   //開始  
  69.   public void onStart() {  
  70.       // Play Video  
  71.       mVideoView.setVideoURI(mUri);  
  72.       mVideoView.start();  
  73.  
  74.       super.onStart();  
  75.      }  
  76.  
  77.    
  78.  
  79.   //暫停  
  80.  
  81.      public void onPause() {  
  82.       // Stop video when the activity is pause.  
  83.       mPositionWhenPaused = mVideoView.getCurrentPosition();  
  84.       mVideoView.stopPlayback();  
  85.       Log.d(TAG, "OnStop: mPositionWhenPaused = " + mPositionWhenPaused);  
  86.       Log.d(TAG, "OnStop: getDuration  = " + mVideoView.getDuration());  
  87.  
  88.       super.onPause();  
  89.      }  
  90.  
  91.    
  92.  
  93.      public void onResume() {  
  94.       // Resume video player  
  95.       if(mPositionWhenPaused >= 0) {  
  96.        mVideoView.seekTo(mPositionWhenPaused);  
  97.        mPositionWhenPaused = -1;  
  98.       }  
  99.  
  100.       super.onResume();  
  101.      }  
  102.  
  103.    
  104.  
  105. }  
  106.  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved