Android中使用SurfaceView视频播放器

该博客详细介绍了如何在Android应用中使用SurfaceView组件实现视频播放功能。包括SurfaceView的初始化,MediaPlayer对象的创建、设置播放源、监听事件以及播放、暂停、停止和重置操作。此外,还涉及到通过Intent传递播放位置信息,以便在activity间恢复播放状态。
摘要由CSDN通过智能技术生成
public class PlayerVideoActivity extends Activity {

	// SurfaceView控件
	private SurfaceView sv_video;

	private SurfaceHolder surfaceHolder;

	// 播放视频对象
	private MediaPlayer mediaPlayer;

	private String path;

	private boolean PasueFlag = false;

	// 记录暂停播放的位置
	private int currentPosition = 0;

	// 播放按钮的控件
	private LinearLayout video_layout;
	
	//声明一个回放的记录位置
	private int backPosition = 0;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_video);
		// 获取SurfaceView控件
		sv_video = (SurfaceView) findViewById(R.id.sv_video);

		// 通过控件来获取SurfaceHolder
		surfaceHolder = sv_video.getHolder();

		// 回调函数
		surfaceHolder.addCallback(new SurfaceHolder.Callback() {

			// surfaceView控件被销毁的方法
			@Override
			public void surfaceDestroyed(SurfaceHolder holder) {
				// 当点击后退按钮 就杀死 surfaceView控件 activity被杀死
				
				//记录视频所播放的位置
				int position = mediaPlayer.getCurrentPosition();
				mediaPlayer.release();
				mediaPlayer = null;
				
				//声明意图对象
				Intent data = new Intent();
				data.putExtra("position",position);
				PlayerVideoActivity.this.setResult(RESULT_OK, data);
				
				//当前kill
				PlayerVideoActivity.this.finish();
			}

			// surfaceView创建的时候执行的方法
			@Override
			public void surfaceCreated(SurfaceHolder holder) {
				// 当第一次使用SurfaceView的时候 播放视频
				play();
			}

			// surfaceView发生变化执行的操作
			@Override
			public void surfaceChanged(SurfaceHolder holder, int format,
					int width, int height) {

			}
		});

		// 在这里怎么获取intent传递的数据
		path = this.getIntent().getStringExtra("path&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值