Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之MediaPlayer和SurfaceView播放視頻

Android開發之MediaPlayer和SurfaceView播放視頻

編輯:關於Android編程

使用MediaPlayer出了了可以播放音頻之外,還可以播放視頻文件,只不過使用MediaPlayer播放視頻時,沒有提供圖像輸出界面。可以使用SurfaceView組件來顯示視頻圖像。使用MediaPlayer和SurfaceView播放視頻大致可以分為如下四個步驟:

1)定義SurfaceView組件。最好在布局文件中實現。

2)創建MediaPlayer對象,並為其加載要播放的視頻。

3)將所播放的視頻畫面輸出到SurfaceView中。使用MediaPlayer對象的setDisplay方法,可以將所播放的視頻畫面輸出到SurfaceView。

4)調用MediaPlayer對象的相應方法控制視頻的播放。播放play,暫停,pause,停止stop。

一個例子如下所示:



import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	private MediaPlayer mp;		//聲明MediaPlayer對象
	private SurfaceView sv;	//聲明SurfaceView對象
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mp=new MediaPlayer();		//實例化MediaPlayer對象
        sv=(SurfaceView)findViewById(R.id.surfaceView1);	//獲取布局管理器中添加的SurfaceView組件
        Button play=(Button)findViewById(R.id.play);	//獲取“播放”按鈕
        final Button pause=(Button)findViewById(R.id.pause);	//獲取“暫停/繼續”按鈕
        Button stop=(Button)findViewById(R.id.stop);		//獲取“停止”按鈕
        //為“播放”按鈕添加單擊事件監聽器
        play.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				mp.reset();		//重置MediaPlayer對象
				try {
					mp.setDataSource("/sdcard/ccc.mp4");	//設置要播放的視頻
					mp.setDisplay(sv.getHolder());	//設置將視頻畫面輸出到SurfaceView
					mp.prepare();	//預加載視頻
					mp.start();	//開始播放
					sv.setBackgroundResource(R.drawable.bg_playing);	//改變SurfaceView的背景圖片
					pause.setText("暫停");
					pause.setEnabled(true);	//設置“暫停”按鈕可用
				} catch (IllegalArgumentException e) {
					e.printStackTrace();
				} catch (SecurityException e) {
					e.printStackTrace();
				} catch (IllegalStateException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
				
			}
			
		});
        //為“停止”按鈕添加單擊事件監聽器
        stop.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				if(mp.isPlaying()){
					mp.stop();		//停止播放
					sv.setBackgroundResource(R.drawable.bg_finish);	//改變SurfaceView的背景圖片
					pause.setEnabled(false);	//設置“暫停”按鈕不可用
				}
			}
			

		});
        //為“暫停”按鈕添加單擊事件監聽器
        pause.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(mp.isPlaying()){
					mp.pause();		//暫停視頻的播放
					((Button)v).setText("繼續");
				}else{
					mp.start();		//繼續視頻的播放
					((Button)v).setText("暫停");
				}
			}
			

		});
        //為MediaPlayer對象添加完成事件監聽器
        mp.setOnCompletionListener(new OnCompletionListener() {

			public void onCompletion(MediaPlayer mp) {
				// TODO Auto-generated method stub
				sv.setBackgroundResource(R.drawable.bg_finish);	//改變SurfaceView的背景圖片
				Toast.makeText(MainActivity.this, "視頻播放完畢!", Toast.LENGTH_SHORT).show();
			}
			
 
		});
        
    }
	@Override
	protected void onDestroy() {
		if(mp.isPlaying()){
			mp.stop();	//停止播放視頻
		}
		mp.release();	//釋放資源
		super.onDestroy();
	}
    
}

好了,結束。



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