android视频_mediaPlayer

来源:互联网 发布:java 计算圆周率 编辑:程序博客网 时间:2024/06/05 15:22

一、项目目录结构

二、activity_main.xml代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.zgs.videoMediaPlayer.MainActivity" >    <SurfaceView        android:id="@+id/sfv"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></RelativeLayout>
三、MainActivity.java代码
package com.zgs.videoMediaPlayer;import android.app.Activity;import android.media.MediaPlayer;import android.media.MediaPlayer.OnPreparedListener;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class MainActivity extends Activity {private MediaPlayer player;private int currentPosition; //当前视频播放的位置@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到控件final SurfaceView sfv = (SurfaceView) findViewById(R.id.sfv);final SurfaceHolder surfaceHolder = sfv.getHolder();//添加一个callbacksurfaceHolder.addCallback(new Callback() {//当surfaceview销毁的时候调用@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {System.out.println("surfaceDestroyed");if (player!=null && player.isPlaying()) {//获取当前视频播放的位置currentPosition = player.getCurrentPosition();player.stop();}}//当surfaceview 初始化了@Overridepublic void surfaceCreated(SurfaceHolder holder) {//[1]初始化mediaplayerplayer = new MediaPlayer();//[2]设置要播放的资源  path 可以是本地也可是网络路径try {player.setDataSource("/mnt/sdcard/cc.mp4");//[2.1]设置播放视频的内容 SurfaceHolder  是用来维护视频播放的内容player.setDisplay(surfaceHolder);//[3]准备播放 player.prepare();//player.prepareAsync(); //设置一个准备完成的监听player.setOnPreparedListener(new OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {//[4]开始播放 player.start();//[5]继续上次的位置继续播放 player.seekTo(currentPosition);}});} catch (Exception e) {e.printStackTrace();}}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}});}}

0 0
原创粉丝点击