1. 程式人生 > >在安卓中使用VideoView來播放視訊

在安卓中使用VideoView來播放視訊

第一步:在Activity中放入一個VideoView元件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:layout_gravity="center"
    android:gravity="center">

    <VideoView
        android:id="@+id/VideoView_advView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:layout_gravity="center"/>

</LinearLayout> 

第二步:在程式碼中完成播放視訊的功能:
/**
 * 建立多媒體播放器,並播放固定目錄下的固定名稱的視訊檔案
 */
MediaController mediaController = new MediaController(this);
mediaController.setVisibility(View.INVISIBLE);//隱藏進度條和食品播放按鈕
File videoFile = new File("/mnt/sdcard/Movies/wineAdv.mp4"); 
		
// 先判斷這個檔案是否存在  
if (videoFile.exists()) {  
    System.out.println("檔案存在");  
            
    VideoView videoView = (VideoView)this.findViewById(R.id.VideoView_advView);
    videoView.setVideoPath(videoFile.getAbsolutePath());  
    System.out.println(videoFile.getAbsolutePath());  
    // 設定VideView與MediaController建立關聯  
    videoView.setMediaController(mediaController);  
    // 設定MediaController與VideView建立關聯  
    mediaController.setMediaPlayer(videoView);  
  
    // 讓VideoView獲取焦點  
    videoView.requestFocus();  
    // 開始播放  
    videoView.start(); 
            
    //設定迴圈播放
    videoView.setOnPreparedListener(new OnPreparedListener() {
				
	@Override
	public void onPrepared(MediaPlayer mp) {
            mp.setLooping(true);
	}
    });

    //當播放完成時,再次啟動播放。即人工迴圈播放
    this.videoView.setOnCompletionListener(new OnCompletionListener(){
        @Override  
        public void onCompletion(MediaPlayer mp) {
            videoView.setVideoPath(videoFile.getAbsolutePath());  
            videoView.start();
        }
    });
} else {  
    Toast.makeText(this, "視訊檔案不存在", Toast.LENGTH_LONG).show();  
}