前言
受限於網速等原因,播放網絡視頻時一般都會要加上緩沖處理,一般可以通過設置加大緩沖和顯示正在緩沖的進度條來改善體驗。
聲明
歡迎轉載,但請保留文章原始出處:)
博客園:http://www.cnblogs.com
Vitamio: http:// vitamio.org農民伯伯: http://over140.cnblogs.com
正文
一、 主要代碼
/**
是否需要自動恢復播放,用於自動暫停,恢復播放
*/
private boolean needResume;
@Override
public boolean onInfo(MediaPlayer arg0, int arg1, int arg2) {
switch (arg1) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
// 開始緩存,暫停播放
if (isPlaying()) {
stopPlayer();
needResume = true;
}
mLoadingView.setVisibility(View.VISIBLE);
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
// 緩存完成,繼續播放
if (needResume)
startPlayer();
mLoadingView.setVisibility(View.GONE);
break;
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:
// 顯示 下載速度
Logger.e("download rate:" + arg2);
break;
}
return true;
}
private boolean needResume;
@Override
public boolean onInfo(MediaPlayer arg0, int arg1, int arg2) {
switch (arg1) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
// 開始緩存,暫停播放
if (isPlaying()) {
stopPlayer();
needResume = true;
}
mLoadingView.setVisibility(View.VISIBLE);
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
// 緩存完成,繼續播放
if (needResume)
startPlayer();
mLoadingView.setVisibility(View.GONE);
break;
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:
// 顯示 下載速度
Logger.e("download rate:" + arg2);
break;
}
return true;
}
設緩沖大小的代碼:
mVideoView.setBufferSize(bufSize)
單位是byte,默認大小是1024KB(1M)。
二、OPlayer
下載
請移步#Taocode(SVN):(沒有賬戶的請注冊一個即可)項目地址: http://code.taobao.org/p/oplayer
SVN地址: http://code.taobao.org/svn/oplayer/
Google Play(2013-03-12上架)
https://play.google.com/store/apps/details?id=com.nmbb.oplayer
有時間好好修正修正 :)
結束
公司越重視,大家越重視,我也會越重視,寫更多Vitamio相關的實用文章,感謝大家繼續支持Vitamio!