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<duration){
mVideo.seekTo(currentPosition);
}else{
mVideo.seekTo(duration);
}
}
private void pause() {
mVideo.pause();
}
private void play() {
mVideo.start();
}
}