【发布时间】:2014-10-29 14:40:10
【问题描述】:
我在 imageview 和 videoview 中显示图像和视频,但问题是视频何时显示 播放 onpreparedlistener 调用但当视频完成时 oncompletion 监听器未调用 当 videoview 完成时,我为下一个视频或图像增加 i
它也给我这样的 logcat 错误,但视频正在播放
10-29 20:12:47.770: E/MediaPlayer(3975): 错误 (1, -2147483648)
private void nextVideo(String path){
mImageview.setVisibility(View.GONE);
if(mVideoview.getVisibility()==View.GONE){
mVideoview.setVisibility(View.VISIBLE);
}
controller = new MediaController(HomeActivityNewViewPager.this);
mVideoview.setVideoURI(Uri.parse(path));
mVideoview.setMediaController(null);
controller.setMediaPlayer(mVideoview);
mVideoview.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mVideoview.start();
long duration = mVideoview.getDuration();
second=duration;
//handler.removeCallbacks(runnable);
//handler.postDelayed(runnable,second);
}
});
mVideoview.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.v("video view completed","---"+i);
mp.reset();
if(automode){
if(i==myplaylistlocal.size() || i>myplaylistlocal.size())
{
String checkcount=spreferences.getString("roundcount", "");
Log.v("roundcount==Before Integer.parseInt","---->"+roundcount);
if(roundcount>=Integer.parseInt(checkcount))
{
roundcount=0;
Log.v("roundcount==After Integer.parseInt","---->"+roundcount);
updateplaylist();
}
i=0;
indexplus();
imagesautomode();
i++;
}
else if(i==myplaylistlocal.size()-1)
{
imagesautomode();
i++;
}
else{
imagesautomode();
}
}
else{
i++;
images();
}
}
});
mVideoview.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.v("Error in video playing","----->"+i);
return true;
}
});
}
【问题讨论】:
-
您是否从视频播放器返回任何错误?有些代码可能格式不正确等。我注意到有些视频编码不正确,并且在视频播放器感知到它们完成之前就结束了。
-
10-29 20:12:47.770: E/MediaPlayer(3975): error (1, -2147483648) 这是在 logcat 中显示,但仍然没有调用 onerrorlistner