.playvideobymediaplayer;

来源:互联网 发布:网络博客体验金 编辑:程序博客网 时间:2024/05/20 18:41
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    <SurfaceView        android:id="@+id/surfaceView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1" />     <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <Button            android:id="@+id/rewind"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="快退10s" />        <Button            android:id="@+id/play"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="暂停" />        <Button            android:id="@+id/forward"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="快进10s" />    </LinearLayout></LinearLayout>
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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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();}// 当用户返回时@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (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);}@Overridepublic void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubplayVideo(pathString);}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}    }


原创粉丝点击