多媒体_视频播放器

来源:互联网 发布:软件开发 杭州 编辑:程序博客网 时间:2024/04/29 12:58

//mainActivity

package com.demo.vedio;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;public class MainActivity extends Activity {private MediaPlayer player;private SurfaceView sv;SurfaceHolder holder;int progress = 0;     //定义播放进度protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sv = (SurfaceView) findViewById(R.id.sv);//获取surfaceview的控制器holder = (SurfaceHolder) sv.getHolder();holder.addCallback(new Callback() {@Override//在surfaceview销毁时调用public void surfaceDestroyed(SurfaceHolder holder) {if(player != null){//停止之前先保存播放进度progress = player.getCurrentPosition();player.stop();    //停止player.release();   //释放资源player = null;}}//在surfaceview创建时调用@Overridepublic void surfaceCreated(SurfaceHolder holder) {if(player == null){  //判断play是否为空,空就创建player = new MediaPlayer();//player.reset();try {player.setDataSource("mnt/sdcard/2.3gp");//指定视频播放在哪个surfaceviewplayer.setDisplay(holder);  //返回的是一个Surfaceholderplayer.prepare();//跳转到上一次停止的地方继续播放player.seekTo(progress);player.start();} catch (Exception e) {e.printStackTrace();} }}@Override//在surfaceview改变时调用public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}});}}

//布局文件

<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"    tools:context="${relativePackage}.${activityClass}" >    <SurfaceView        android:id="@+id/sv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        /></RelativeLayout>



方法2:Videoview 控件


//MainActivit文件

package com.demo.videoview;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.VideoView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);VideoView vv = (VideoView) findViewById(R.id.vv);vv.setVideoPath("sdcard/2.3gp");vv.start();}}

//布局文件

<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"    tools:context="${relativePackage}.${activityClass}" >    <VideoView        android:id="@+id/vv"        android:layout_width="match_parent"        android:layout_height="match_parent"       /></RelativeLayout>


0 0
原创粉丝点击