美文网首页
IjkMediaPlayer使用的坑及其解决方案

IjkMediaPlayer使用的坑及其解决方案

作者: 小包同学vip | 来源:发表于2020-06-08 14:39 被阅读0次

大多数问题 可以借鉴 https://www.jianshu.com/p/220b00d00deb解决。作者真的好厉害!!!

ijk 报错-10000 问题

//一般是视频源有问题或者数据格式不支持,比如音频不是AAC之类
int MEDIA_ERROR_IJK_PLAYER = -10000

1、修改为ijk后,发现个别音频不能正确播放,报错-10000???(之前系统播放器是可以的呀??黑人问号???)后来下载音频比对后,发现是这里的比特率,上传的音频是空的,修改后,ok!!!

image.png
2、http和https域名共用问题
我的项目使用了ijk作为一个单例类,在两个模块中使用。由于数据有http和https混搭,直接导致了另外一个模块播放异常,-10000 纳尼~~
解放方案:
// 清空DNS,有时因为在APP里面要播放多种类型的视频(如:MP4,直播,直播平台保存的视频,和其他http视频), 有时会造成因为DNS的问题而报10000问题
ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);

一些配置项设置setOption

             ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "videotoolbox", 1);
            //ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
            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, "max-buffer-size", 1024 * 1024);
            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1);
            // 清空DNS,有时因为在APP里面要播放多种类型的视频(如:MP4,直播,直播平台保存的视频,和其他http视频), 有时会造成因为DNS的问题而报10000问题
            ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);

相关文章

网友评论

      本文标题:IjkMediaPlayer使用的坑及其解决方案

      本文链接:https://www.haomeiwen.com/subject/ikfrtktx.html