package com.ntp.ui.course;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.ntp.ui.R;
import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
/**
* 课程视频播放
*
* @author yanxing
*/
public class VideoPlayActivity extends Activity implements MediaPlayer.OnInfoListener, MediaPlayer.OnBufferingUpdateListener {
private VideoView videoView;
private ProgressBar pb;
private TextView downloadRateView, loadRateView;//下载速度,加载百分比
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this)) {
return;
}
setContentView(R.layout.activitity_video_play);
pb = (ProgressBar) findViewById(R.id.probar);
downloadRateView = (TextView) findViewById(R.id.download_rate);
loadRateView = (TextView) findViewById(R.id.load_rate);
String path = getIntent().getStringExtra("path");
videoView = (VideoView) findViewById(R.id.surface_view);
videoView.setVideoPath(path);
videoView.setMediaController(new MediaController(this));
videoView.setOnInfoListener(this);//异常、警告信息时调用,例如:开始缓冲、缓冲结束、下载速度变化
videoView.setOnBufferingUpdateListener(this);//在网络视频流缓冲变化时调用
videoView.requestFocus();
videoView.setVideoLayout(2, 0);//画面拉伸显示
//监听播放完成,关闭Activity
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
finish();
}
});
}
//提示信息
@Override
public boolean onInfo(MediaPlayer arg0, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START://开始缓存,暂停播放
if (videoView.isPlaying()) {
videoView.pause();
}
pb.setVisibility(View.VISIBLE);
loadRateView.setText(videoView.getBufferPercentage() + "%");
downloadRateView.setVisibility(View.VISIBLE);
loadRateView.setVisibility(View.VISIBLE);
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END://缓存完成,继续播放
videoView.start();
pb.setVisibility(View.GONE);
downloadRateView.setVisibility(View.GONE);
loadRateView.setVisibility(View.GONE);
break;
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED://显示下载速度
downloadRateView.setText("" + extra + "kb/s" + " ");
break;
}
return true;
}
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
loadRateView.setText(percent + "%");
}
}