播放器封面图片
很多同学问到能不能设置播放器封面,这里给两方面回答。
1、推荐方式:提前准备好了封面图片,设置在 FijkView 中,使用 FijkView
cover 参数 设置。
如果觉得 FijkView cover 参数限制太多,或者不满足你的需求,请具体参考 ”个性化 UI “ 中的内容,可以把任何 UI 盖在播放器上。
2、不推荐 方式:从视频内容中解析第一帧数据,使用 setDataSource
的 showCover
。这样做占用的内存、加载的时间都比方式 1 要多。视频的第一帧可能是纯黑的、纯白的、或者其他不适合用来做封面的画面。
建议在后台提前准备好封面图片,并把图片 url 下发到 app 端,然后使用方式 1推荐方式显示封面。
设置 http 请求头
FijkPlayer player = FijkPlayer();
await player.setOption(FijkOption.formatCategory, "headers", "referer:https://blog.befovy.com\r\nhost:https://github.com");
await player.setDataSource(widget.url, autoPlay: true);
设置给 formatCategory
的 herders
最终会加到 http 请求的头部,这个调用 setOption 的第三个参数是 String 类型,格式为 key1:value1\r\nkey2:valee2
,多个 key value 对之间用 \r\n
隔开,key 和 value 之间用 :
隔开。
什么时候该 await
如果你不理解该什么时候对 FijkPlayer
的接口调用使用 await
。
那就遵守这条简单规则:对所有 FijkPlayer
中返回 Future 类型的方法都使用 await
pod FIJKPlayer 版本问题
出错内容,*** but they required a higher mininum deployment target
解决办法:在 ios 目录运行 pod update FIJKPlayer --verbose
pod 文件找不到
No such file or directory fijkplayer.podspec.json
解决办法是 pod 降版本,具体看这里的回答
Android Release 崩溃
Android Release 版本崩溃,但是 Debug 版本没问题。
一般都是 Java 代码被混淆了的原因。需要配置文件不要混淆 ijkplayer 中的 java 代码。
相关内容看 #80, 和 #98
在 proguard 文件加入下面内容。
-keep class tv.danmaku.ijk.media.player.** {
*;
}
退出全屏后,UI错乱
这其实不是 fijkplayer 的问题,是 App 的 UI 代码逻辑有缺陷。