bilibili / ijkplayer

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
GNU General Public License v2.0
32.44k stars 8.11k forks source link

可以播放https的视频链接,但是播放不了http视频链接了 #4762

Open maoai-xianyu opened 5 years ago

maoai-xianyu commented 5 years ago

你好,为了解决这个问题 tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0) 我将https的协议编译进去之后,现在的播放http链接的视频出现上面的问题。 现在是https 链接的视频可以播放(https://assets.boxfish.cn/daily-video/170413b.mp4),但是http链接的播放不了(http://assets.boxfish.cn/daily-video/170413b.mp4)。 这怎么搞,请求协助哦

maoai-xianyu commented 5 years ago

添加 配置文件 ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);

参考:https://github.com/bilibili/ijkplayer/issues/4358

public IMediaPlayer createPlayer() {
    IMediaPlayer mediaPlayer = null;
    IjkMediaPlayer ijkMediaPlayer = null;
    if (mUri != null) {
        ijkMediaPlayer = new IjkMediaPlayer();
        ijkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_DEBUG);

        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1);

        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);

        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0);

        ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);

// ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1); } mediaPlayer = new TextureMediaPlayer(ijkMediaPlayer); return mediaPlayer; }