博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.playvideobymediaplayer;
阅读量:2298 次
发布时间:2019-05-09

本文共 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/

你可能感兴趣的文章
java进阶7——异常
查看>>
java进阶8——IO流
查看>>
java进阶9——线程
查看>>
java进阶10——面向网络编程
查看>>
java进阶11——反射&BeanUtils
查看>>
PUSQL学习1——PUSQL 基础
查看>>
JavaWeb文件上传
查看>>
解决tomcat内存不足问题:java.lang.OutOfMemoryError: PermGen space
查看>>
JDBC连接常用数据库的URL
查看>>
iReport 按某个字段(属性)值分页打印
查看>>
矢量图控件VectorDraw使用教程:添加vdFramedControl (Visual C# 2005)
查看>>
矢量图控件VectorDraw使用教程:ActionUtility对象
查看>>
使用Dynamsoft存储和检索SQL Server中的扫描图像
查看>>
分享30个最流行的jQuery插件(上)
查看>>
分享30个最流行的jQuery插件(下)
查看>>
10款最出色的免费数据库管理工具
查看>>
26款开源Java测试工具
查看>>
4款.Net报表控件优势对比分析
查看>>
FusionCharts与Highcharts图表类型对比
查看>>
版本控制工具SourceAnywhere v5.1正式发布啦
查看>>