安卓VideoView使用

1.简单的使用

String url = "http://download1.vlook.cn/ef82583f7a4e6467b408db72fd521d8d/56566f43/video/vga/cJME.mp4";
        mViewView.setVideoURI(Uri.parse(url));
        mViewView.setMediaController(new MediaController(this));
        mViewView.start();



2.自定义进度

package qianfeng.day07_videoview;


import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.DragEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.VideoView;


import java.text.SimpleDateFormat;




/**
 * Created by keven on 15/11/26.
 */
public class MainActivity2 extends AppCompatActivity{


    private static final String TAG = "MainActivity2";
    private static final int SPACE = 10;
    private SeekBar mSeek;
    private VideoView mVideo;
    private LinearLayout mOperation;
    private TextView mTimeTv;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        mSeek = (SeekBar) findViewById(R.id.progress);
        mVideo = (VideoView) findViewById(R.id.video);
        mOperation = (LinearLayout) findViewById(R.id.operation);
        mTimeTv = (TextView) findViewById(R.id.time_tv);
        //设置所有的监听
        setAllClick();


        String url = "http://service.vlook.cn:8080/down/servlet/VideoPlay?vid=cHuV&client=pc&imei=c93af537e63f42932e0b41b24ed6fe31&n=xx.mp4";
        mVideo.setVideoURI(Uri.parse(url));


        mVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                Log.i(TAG,"当前视频已准备就绪");
                handler.post(runnable);
                mVideo.start();     //播放视频
            }
        });
    }


    Handler handler = new Handler();


    boolean isTouch = false;


    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            //获取总长
            int duration = mVideo.getDuration();
            //获取当前位置
            int currentPosition = mVideo.getCurrentPosition();
            //设置一个时间显示
            mTimeTv.setText(formatTtime(currentPosition) + " / " + formatTtime(duration));


            //获取缓冲百分比
            int bufferPercentage = mVideo.getBufferPercentage();
            //设置最大长度
            mSeek.setMax(duration);


            //设置缓冲多少
            if(bufferPercentage==100){
                mSeek.setSecondaryProgress(duration);
            }else{
                mSeek.setSecondaryProgress((duration/100*bufferPercentage));
            }
            if(!isTouch){
                //设置当前位置
                mSeek.setProgress(currentPosition);
            }
            //递归
            handler.postDelayed(runnable,1000);
        }
    };


    String formatTtime(long time){


        SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");


        String timeStr = sdf.format(time);


        return timeStr;
    }




    private void setAllClick() {
        mOperation.getChildAt(0).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                play();
            }
        });
        mOperation.getChildAt(1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                pause();
            }
        });
        mOperation.getChildAt(2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                forward();
            }
        });
        mOperation.getChildAt(3).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                backward();
            }
        });


        mSeek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {


            }


            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                isTouch = true;
            }


            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                isTouch = false;
                mVideo.seekTo(seekBar.getProgress());
            }
        });
    }


    private void backward() {
        //获取视频总长


        //获取当前播放的位置 ,并且追加 前进的时间
        int currentPosition = mVideo.getCurrentPosition()-SPACE;
        if(currentPosition<0){
            mVideo.seekTo(0);
        }else{
            mVideo.seekTo(currentPosition);
        }


    }


    private void forward() {
        //获取视频总长
        int duration = mVideo.getDuration();
        //获取当前播放的位置 ,并且追加 前进的时间
        int currentPosition = mVideo.getCurrentPosition()+SPACE;
        if(currentPosition             mVideo.seekTo(currentPosition);
        }else{
            mVideo.seekTo(duration);
        }


    }




    private void pause() {
        mVideo.pause();
    }


    private void play() {
        mVideo.start();
    }
}

你可能感兴趣的:(安卓高级)