本文共 3393 字,大约阅读时间需要 11 分钟。
package com.example.playvideobymediaplayer;import android.os.Bundle;import android.app.Activity;import android.media.AudioManager;import android.media.MediaPlayer;import android.view.SurfaceHolder;import android.view.KeyEvent;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements SurfaceHolder.Callback { Button btn_rewind, btn_play, btn_forward; String pathString = "/sdcard/video-2.mp4"; // SurfaceHolder surfaceHolder; MediaPlayer mediaPlayer; SurfaceView surfaceView; @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_rewind = (Button) findViewById(R.id.rewind); btn_play = (Button) findViewById(R.id.play); btn_forward = (Button) findViewById(R.id.forward); // MediaPlayer设置/// surfaceView = (SurfaceView) findViewById(R.id.surfaceView); surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); surfaceHolder.setFixedSize(320, 240); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mediaPlayer = new MediaPlayer(); btn_rewind.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub// // ///mediaplayer int rewind = mediaPlayer.getCurrentPosition() - 10000; if (rewind > 0) { mediaPlayer.seekTo(rewind); } } }); btn_play.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // ///mediaplayer方式 if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); btn_play.setText("播放"); } else { mediaPlayer.start(); btn_play.setText("暂停"); } } }); btn_forward.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // ///mediaplayer int forward = mediaPlayer.getCurrentPosition() + 10000; if (forward < mediaPlayer.getDuration()) { mediaPlayer.seekTo(forward); } } }); } // 使用mediaplayer播放视频 private void playVideo(String strPath) {// 自定义播放影片函数 if (mediaPlayer.isPlaying()) { mediaPlayer.reset(); } mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setDisplay(surfaceHolder);// 设置Video影片以SurfaceHolder播放 try { mediaPlayer.setDataSource(strPath); // 设置MediaPlayer的数据源 mediaPlayer.prepare(); // 准备 } catch (Exception e) { e.printStackTrace(); } mediaPlayer.start(); } // 当用户返回时 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { if (mediaPlayer!=null) { mediaPlayer.stop(); mediaPlayer.release(); }// if (videoView!=null ) {// videoView.pause();// videoView.clearAnimation();// } this.finish(); return true; } return super.onKeyDown(keyCode, event); } @Override public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub playVideo(pathString); } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub } }
转载地址:http://cbkib.baihongyu.com/