`private IMediaPlayer.OnInfoListener mOnInfoListener = new IMediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(IMediaPlayer iMediaPlayer, int i, int i1) {
switch (i) {
// In case of all other issues
case KSYMediaPlayer.MEDIA_INFO_BAD_INTERLEAVING:
case KSYMediaPlayer.MEDIA_INFO_METADATA_UPDATE:
case KSYMediaPlayer.MEDIA_INFO_NETWORK_BANDWIDTH:
case KSYMediaPlayer.MEDIA_INFO_NOT_SEEKABLE:
case KSYMediaPlayer.MEDIA_INFO_SOFTWARE_DECODE:
case KSYMediaPlayer.MEDIA_INFO_SPEED_LOW:
case KSYMediaPlayer.MEDIA_INFO_STARTED_AS_NEXT:
case KSYMediaPlayer.MEDIA_INFO_SUBTITLE_TIMED_OUT:
case KSYMediaPlayer.MEDIA_INFO_TIMED_TEXT_ERROR:
case KSYMediaPlayer.MEDIA_INFO_UNKNOWN:
case KSYMediaPlayer.MEDIA_INFO_UNSUPPORTED_SUBTITLE:
case KSYMediaPlayer.MEDIA_INFO_VIDEO_TRACK_LAGGING:
//Toast.makeText(mContext, "UNKNOWN", Toast.LENGTH_SHORT).show();
if (mVideoView != null) {
progressBarVideo.setVisibility(View.VISIBLE);
mVideoView.reload(mDataSource, true);
}
break;
case KSYMediaPlayer.MEDIA_INFO_BUFFERING_START:
Log.i(TAG, "Buffering Start.");
break;
case KSYMediaPlayer.MEDIA_INFO_BUFFERING_END:
Log.i(TAG, "Buffering End.");
break;
case KSYMediaPlayer.MEDIA_INFO_AUDIO_RENDERING_START:
//Toast.makeText(mContext, "Audio Rendering Start", Toast.LENGTH_SHORT).show();
if (!mVideoView.isShown())
progressBarVideo.setVisibility(View.VISIBLE);
break;
case KSYMediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START:
//Toast.makeText(mContext, "Video Rendering Start", Toast.LENGTH_SHORT).show();
if (mVideoView != null) {
progressBarVideo.setVisibility(View.INVISIBLE);
mVideoView.setVideoScalingMode(KSYMediaPlayer.VIDEO_SCALING_MODE_NOSCALE_TO_FIT);
}
break;
case KSYMediaPlayer.MEDIA_INFO_SUGGEST_RELOAD:
//Toast.makeText(mContext, "MEDIA_INFO_SUGGEST_RELOAD", Toast.LENGTH_SHORT).show();
if (mVideoView != null) {
progressBarVideo.setVisibility(View.VISIBLE);
mVideoView.reload(mDataSource, true);
}
break;
case KSYMediaPlayer.MEDIA_INFO_RELOADED:
//Toast.makeText(mContext, "Succeed to reload video.", Toast.LENGTH_SHORT).show();
progressBarVideo.setVisibility(View.INVISIBLE);
Log.i(TAG, "Succeed to mPlayerReload video.");
return false;
default:
Log.i(TAG, "OnInfoListener switch case default value: " + i);
}
return false;
}
};`
09-14 04:26:15.222 13157-15313/project.com.app.xxxx W/KSYMediaPlayer: [zzy]MediaCodec drop a render 09-14 04:26:15.222 13157-15319/project.com.app.xxxx W/System.err: java.lang.IllegalStateException 09-14 04:26:15.222 13157-15303/project.com.app.xxxx I/ACodec: [OMX.qcom.video.decoder.avc] Now Executing->Idle 09-14 04:26:15.222 13157-15319/project.com.app.xxxx W/System.err: at android.media.MediaCodec.native_dequeueInputBuffer(Native Method) 09-14 04:26:15.222 13157-15319/project.com.app.xxxx W/System.err: at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:986) 09-14 04:26:15.222 13157-15319/project.com.app.xxxx E/KSYMediaPlayer: SDL_AMediaCodecJava_dequeueInputBuffer: dequeueInputBuffer failed 09-14 04:26:15.222 13157-15319/project.com.app.xxxx W/KSYMediaPlayer: [zzy][mc] feed_input_buffer, get FAKE frame 09-14 04:26:15.222 13157-15319/project.com.app.xxxx E/KSYMediaPlayer: feed_input_buffer: SDL_AMediaCodec_getInputBuffer failed
直播20-30分钟后, player错误。请问如何解决?
`private void CreateVideoPlayer() { try { progressBarVideo = (ProgressBar) findViewById(R.id.progressBarVideo); progressBarVideo.setVisibility(View.VISIBLE);
`private IMediaPlayer.OnInfoListener mOnInfoListener = new IMediaPlayer.OnInfoListener() { @Override public boolean onInfo(IMediaPlayer iMediaPlayer, int i, int i1) { switch (i) { // In case of all other issues case KSYMediaPlayer.MEDIA_INFO_BAD_INTERLEAVING: case KSYMediaPlayer.MEDIA_INFO_METADATA_UPDATE: case KSYMediaPlayer.MEDIA_INFO_NETWORK_BANDWIDTH: case KSYMediaPlayer.MEDIA_INFO_NOT_SEEKABLE: case KSYMediaPlayer.MEDIA_INFO_SOFTWARE_DECODE: case KSYMediaPlayer.MEDIA_INFO_SPEED_LOW: case KSYMediaPlayer.MEDIA_INFO_STARTED_AS_NEXT: case KSYMediaPlayer.MEDIA_INFO_SUBTITLE_TIMED_OUT: case KSYMediaPlayer.MEDIA_INFO_TIMED_TEXT_ERROR: case KSYMediaPlayer.MEDIA_INFO_UNKNOWN: case KSYMediaPlayer.MEDIA_INFO_UNSUPPORTED_SUBTITLE: case KSYMediaPlayer.MEDIA_INFO_VIDEO_TRACK_LAGGING: //Toast.makeText(mContext, "UNKNOWN", Toast.LENGTH_SHORT).show(); if (mVideoView != null) { progressBarVideo.setVisibility(View.VISIBLE); mVideoView.reload(mDataSource, true); } break;