mediaPlayer = new MediaPlayer();
mediaPlayer.setVideoView(videoView);
//mediaPlayer.setWindowMode(ScaleType.FIT_ADAPT);//显示方式,默认即可
//设置最大视频可缓冲时间(秒,<=0不做最大缓冲
mediaPlayer.setNetMaxBuffer(3*60);
//设置最小视频可缓冲时间(秒,不到达此时间,将不播放,<=0不做最小缓冲
mediaPlayer.setNetMinBuffer(3);//缓冲3秒钟后播放
String CPU_ABI = android.os.Build.CPU_ABI;
Toast.makeText(this, CPU_ABI, Toast.LENGTH_SHORT).show();
Log.e(TAG,CPU_ABI);
String url = getUrl();
Log.e(TAG,"is File "+new File(url).isFile());
Log.e(TAG,url);
mediaPlayer.setSource(url);//设置要播放的链接
mediaPlayer.prepare();
//变速变调
//mediaPlayer.setSpeed(1f);
//mediaPlayer.setPicth(1.5f);
//停止正在录制的视频
//mediaPlayer.stopSaveVideo();
//播放的视频保存到此位置
//mediaPlayer.setSaveVideoFile(Environment.getExternalStorageDirectory()+File.separator+"123.mp4");
//启用硬件解码(默认开启
//mediaPlayer.setEnableHardware(false);
////////////////////////////////////////以下为初始化播放时的监听////////////////////////////////////////////////////////////
mediaPlayer.setOnPreparedListener(new OnParparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Log.e(TAG,"准备好了,可以播放");
if(mp.isPause()) {
Log.e(TAG,"pause 暂停");
}else {
mp.start();
}
int width = mp.getWidth();
int height = mp.getHeight();
Log.e(TAG,"width:"+width +" height:"+height);
Log.e(TAG, " 硬解码: "+mediaPlayer.isHardware());
int fps = mp.getFps();
Log.e(TAG,"fps: "+fps);
if(mediaPlayer.getDuration()>0) {
Log.e(TAG,"播放位置:"+mediaPlayer.getCurrentPosition());
long curr = mediaPlayer.getCurrentPosition()/1000;
long total= mediaPlayer.getDuration()/1000;
Log.e(TAG,"播放位置:"+curr);
Log.e(TAG,"时长:"+total);
tvTime.setText(getTime(curr)+"/"+getTime(total));
// Log.e(TAG, "当前播放位置: "+curr);
// Log.e(TAG, "总时长: "+total);
if(total>0) {
int p = (int) (curr * 100 / total);
// Log.e(TAG, "seek "+p);
seekBar.setProgress(p);
}
}
}
});
mediaPlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent, long second) {
long duration = mediaPlayer.getDuration();
//second 缓冲的时间(缓冲的位置-播放的位置)
// second = second/1000;
// Log.e(TAG, "视频时长(秒) : "+duration/1000);
}
});
mediaPlayer.setOnLoadListener(new OnLoadListener(){
@Override
public void onLoad(boolean load) {
if(load){//正在加载
Log.e(TAG,"加载中");
}else{//加载完成
Log.e(TAG,"播放中");
}
Log.e(TAG,"pause "+mediaPlayer.isPause());
}
});
mediaPlayer.setOnTimedTextListener(new OnTimeInfoListener() {
@Override
public void onTimeInfo(TimeInfoBean timeInfoBean) {
// Log.e(TAG,timeInfoBean.toString());
// Log.e(TAG,"onTimeInfo "+timeInfoBean.getCurrentTime());
long curr = timeInfoBean.getCurrentTime()/1000;
long total= timeInfoBean.getTotalTime()/1000;
tvTime.setText(getTime(curr)+"/"+getTime(total));
// Log.e(TAG, "当前播放位置: "+curr);
// Log.e(TAG, "总时长: "+total);
if(!isTouch && total>0) {
int p = (int) (curr * 100 / total);
// Log.e(TAG, "seek "+p);
seekBar.setProgress(p);
}
// handler.sendMessage(msg);
}
});
mediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int code, String extra) {
Log.e(TAG,"error code:"+code);
Log.e(TAG,extra);
if(code >= 1500) {
Toast.makeText(MainActivity.this, "文件打开错", Toast.LENGTH_SHORT).show();
}else {
// Log.e(TAG,"is File ");
}
// if(code==1001) {
// String source = mediaPlayer.getSource();
// Log.e(TAG,"is File "+new File(source).isFile());
// }
return false;
}
});
mediaPlayer.setOnCompletionListener(new OnCompleteListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.e(TAG,"播放结束");
}
});
mediaPlayer.setOnValumeDBListener(new OnValumeDBListener() {
@Override
public void onDbValue(int db) {
// Log.e(TAG,"分贝值:"+db);
}
});