目前android自帶的解碼庫只支持 MP4和3gp兩種格式 如果你下載"Rockplayer"的應用程序,該程序支持幾乎所有的視頻格式.
package jm.out;
import android.app.Activity;//引入Activity類 import android.graphics.PixelFormat;//引入PixelFormat類 import android.media.AudioManager;//引入AudioManager類 import android.media.MediaPlayer;//引入MediaPlayer類 import android.os.Bundle;//引入Bundle類 import android.view.SurfaceHolder;//引入SurfaceHolder類 import android.view.SurfaceView;//引入SurfaceView類 import android.view.View;//引入View類 import android.view.View.OnClickListener;//引入OnClickListener類 import android.widget.Button;//引入Button類 public class VedioActivity extends Activity implements OnClickListener,SurfaceHolder.Callback{ String path = "/sdcard/app/liudehua.3gp"; Button play_Button; Button pause_Button; boolean isPause = false; SurfaceHolder surfaceHolder; MediaPlayer mediaPlayer; SurfaceView surfaceView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); play_Button = (Button) findViewById(R.id.play2_Button); play_Button.setOnClickListener(this); pause_Button = (Button) findViewById(R.id.pause2_Button); pause_Button.setOnClickListener(this); getWindow().setFormat(PixelFormat.UNKNOWN); surfaceView = (SurfaceView) findViewById(R.id.surfaceView); surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); surfaceHolder.setFixedSize(176,144); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mediaPlayer = new MediaPlayer(); } public void onClick(View v) { if(v == play_Button){//按下播放電影按鈕 isPause = false; playVideo(path); } else if(v == pause_Button){//按下暫停按鈕, if(isPause == false){//如果正在播放則將其暫停 mediaPlayer.pause(); isPause = true; } else{//如果暫停中怎繼續播放 mediaPlayer.start(); isPause = false; } } } private void playVideo(String strPath){//自定義播放影片函數 if(mediaPlayer.isPlaying()==true){ mediaPlayer.reset(); } mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDisplay(surfaceHolder);//設置Video影片以SurfaceHolder播放 try{ mediaPlayer.setDataSource(strPath); mediaPlayer.prepare(); } catch (Exception e){ e.printStackTrace(); } mediaPlayer.start(); } public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { } public void surfaceCreated(SurfaceHolder arg0) { } public void surfaceDestroyed(SurfaceHolder arg0) { } }
最主要的是要注意視頻文件的路徑。