1. 程式人生 > >android SurfaceView播放視訊

android SurfaceView播放視訊

 

 

 

 

佈局檔案
<SurfaceView 
    android:id="@+id/surfaceview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

public class MainActivity extends Activity {

   private SurfaceView surfaceView;
   private MediaPlayer mediaPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        
        //獲取資源ID
        surfaceView = (SurfaceView) findViewById(R.id.surfaceview);
        
        //載入視訊
        mediaPlayer = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory()+"/love.mp4"));
        
        
        new Thread(){
              public void run() {
                 //得到SurfaceHolder
                 SurfaceHolder holder = surfaceView.getHolder();
                 //得到檢視的狀態
                 holder.addCallback(new Callback() {
                  //檢視銷燬
                  @Override
                  public void surfaceDestroyed(SurfaceHolder holder) {
                     // TODO Auto-generated method stub
                     
                  }
                  //檢視建立完成
                  @Override
                  public void surfaceCreated(SurfaceHolder holder) {
                     // TODO Auto-generated method stub
                     //將暫存器設定給mediaPlayer
                     mediaPlayer.setDisplay(holder);
                     //開始播放
                     mediaPlayer.start();
                     
                  }
                  //檢視改變
                  @Override
                  public void surfaceChanged(SurfaceHolder holder, int format, int width,
                        int height) {

              
                  }
               });
              };
           
        }.start();
        
        
        
        
    }
}