android自带播放器的例子

来源:互联网 发布:opencv编程案例详解pdf 编辑:程序博客网 时间:2024/06/09 22:46

一个android自带播放器的测试例子,只有简单的播放、停止功能,界面只有四个控件,播放、停止按钮,设置url,显示surface。

package com.ysten.tzjplayer;

import java.io.IOException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.SurfaceHolder.Callback;
import android.widget.EditText;


public class Tzjplayer extends Activity {
    public class ClickEvent implements OnClickListener {

  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   if(v==mplayerbtn)
   {
    try { 
              mediaPlayer.reset(); 
              //mediaPlayer.setDataSource("/mnt/sdcard/2.mp4");
              mediaPlayer.setDataSource(murlPath.getText().toString());
             
              mediaPlayer.prepare();//prepare之后自动播放 
              mediaPlayer.start();
          } catch (IllegalArgumentException e) { 
              // TODO Auto-generated catch block 
              e.printStackTrace(); 
          } catch (IllegalStateException e) { 
              // TODO Auto-generated catch block 
              e.printStackTrace(); 
          } catch (IOException e) { 
              // TODO Auto-generated catch block 
              e.printStackTrace(); 
          }
   }
   else if(v==mstopbtn)
   {
    if(mediaPlayer != null){
     mediaPlayer.stop();
    }
    mediaPlayer.reset();
   }
   
  }
 
 }
 /** Called when the activity is first created. */
 private Button mplayerbtn = null;
 private Button mstopbtn = null;
 public MediaPlayer mediaPlayer;
 private SurfaceView  mvideoserface = null; 
    private SurfaceHolder surfaceHolder;
    private EditText murlPath = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);     
        mplayerbtn = (Button)findViewById(R.id.btnplay);  
  mstopbtn = (Button)findViewById(R.id.btnstop);
  murlPath = (EditText)findViewById(R.id.urlpath);
  murlPath.setText("/mnt/sdcard/2.mp4");
  mvideoserface = (SurfaceView)findViewById(R.id.surfaceView1);
  
  mplayerbtn.setOnClickListener(new ClickEvent());
  mstopbtn.setOnClickListener(new ClickEvent());
  
  surfaceHolder=mvideoserface.getHolder(); 
        surfaceHolder.addCallback(mSurfaceCallback);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }
    private SurfaceHolder.Callback mSurfaceCallback = new Callback() {
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
           
        }

        public void surfaceCreated(SurfaceHolder holder) {
         try { 
                mediaPlayer = new MediaPlayer(); 
                mediaPlayer.setDisplay(surfaceHolder); 
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
               
            } catch (Exception e) { 
               Log.e("mediaPlayer", "error", e); 
            } 
            Log.e("mediaPlayer", "surface created");
        }

        public void surfaceDestroyed(SurfaceHolder holder) {
            //mLibVLC.detachSurface();
        }
    };
   
}

原创粉丝点击