ksvc / KSYMediaPlayer_Android

金山云Android播放SDK(KSYUN Live Streaming player SDK),支持RTMP HTTP-FLV HLS 协议(supporting RTMP HTTP-FLV HLS protocol),直播延时2-3秒(Living delay 2 or 3 seconds),supporting jitter control,software&hardware decode
http://v.ksyun.com/
Apache License 2.0
853 stars 246 forks source link

Player 错误 #182

Open samuelg78 opened 6 years ago

samuelg78 commented 6 years ago

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);

        ImageView mPlayerFullscreen = (ImageView) findViewById(R.id.player_fullscreen);
        mPlayerFullscreen.setOnClickListener(mFullScreenBtnListener);

        ImageView mPlayerReload = (ImageView) findViewById(R.id.player_reload);
        mPlayerReload.setOnClickListener(mReloadBtnListener);

        mVideoView = (KSYTextureView) findViewById(R.id.texture_view);
        mVideoView.setOnBufferingUpdateListener(mOnBufferingUpdateListener);
        mVideoView.setOnCompletionListener(mOnCompletionListener);
        mVideoView.setOnVideoSizeChangedListener(mOnVideoSizeChangeListener);
        mVideoView.setOnErrorListener(mOnErrorListener);
        mVideoView.setOnSeekCompleteListener(mOnSeekCompletedListener);
        mVideoView.setOnMessageListener(mOnMessageListener);

        mVideoView.setOnPreparedListener(mOnPreparedListener);
        mVideoView.setOnInfoListener(mOnInfoListener);
        mVideoView.setKeepScreenOn(true);
        mVideoView.setScreenOnWhilePlaying(true);
        mVideoView.setBufferTimeMax(2);
        mVideoView.setBufferSize(15);

        mVideoView.setTimeout(5, 30);

        mVideoView.setDecodeMode(KSYMediaPlayer.KSYDecodeMode.KSY_DECODE_MODE_AUTO);

        try {
            mVideoView.setDataSource(mDataSource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        mVideoView.prepareAsync();
    } catch (Exception e) {
        e.printStackTrace();
        Log.i(TAG, "CreateVideoPlayer");
    }
}`

`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;
    }
};`
FirmianaRain commented 6 years ago

请问使用的SDK版本是多少?现象是什么呢

samuelg78 commented 6 years ago

请问如何查询?

FirmianaRain commented 6 years ago

有个接口是 getVersion 可以获取当前的sdk版本 你的问题是硬解失败了?

samuelg78 commented 6 years ago

SDK: 2.0.4, 我使用KSYDecodeMode.KSY_DECODE_MODE_AUTO。

FirmianaRain commented 6 years ago

现象是什么呢?播放器报了什么错误?

samuelg78 commented 6 years ago

就是以上的错误。

FirmianaRain commented 6 years ago

现象是什么?黑屏or花屏?还是只有声音没有画面? 如果能提供下视频地址就更好啦