【发布时间】:2020-08-17 08:04:26
【问题描述】:
我使用了 fijkplayer 库,它可以在 Flutter 上播放 m3u8 视频。
无需下载即可正常播放,并且仅在我尝试播放下载的视频时才会出现此问题。另外,我尝试了其他库,例如 chewie、flutter_jikplayer、flutter_tencentplayer,但它们都不起作用。
此问题仅发生在 Vimeo 的 hls 链接上。我已经使用 Internet 上提供的公共 hls 链接实现了所有功能。之后,我发现了这个bug。
此输出似乎是协议相关问题。
xcode 输出是,
===== versions =====
ijkplayer : f0.7.8
FFmpeg : ff4.0--ijk0.8.25--20191031--001
libavutil : 56.14.100
libavcodec : 58.18.100
libavformat : 58.12.100
libswscale : 5.1.100
libswresample: 3.1.100
===== options =====
player-opts : overlay-format = fcc-bgra
player-opts : videotoolbox = 1
player-opts : enable-position-notify = 1
player-opts : start-on-prepared = 1
format-opts : ijkapplication = 4850081840
format-opts : ijkiomanager = 4849971424
===================
Opening 'https://46vod-adaptive.akamaized.net/exp=1597409385~acl=%2F04cf7e17-5507-416e-97c2-a26f6a27d395%2F%2A~hmac=2d7bd4c50e30032541752817b808bd618f7b0fff4a472e3d0b481f0aa2bd11f5/04cf7e17-5507-416e-97c2-a26f6a27d395/sep/audio/7724a1ec/playlist.m3u8' for reading
Protocol 'https' not on whitelist 'file,crypto'!
/var/mobile/Containers/Data/Application/0851E4DB-AA4C-4346-A6F2-5F2D00478D61/Documents/offline/+919744480203133/playlist.m3u8: Invalid argument
如果有什么需要请告诉我,会在这里更新。
【问题讨论】:
-
不知道你有没有遇到过,请查看stackoverflow.com/questions/50455695/…
-
我之前在flutter_jikplayer中做过这个,如下所示 var option1 = IjkOption(IjkOptionCategory.format, "protocol_whitelist", "concat,http,tcp,https,tls,file"); controller.setIjkPlayerOptions( [TargetPlatform.iOS, TargetPlatform.android], [option1].toSet(), );但不适合我
-
我尝试访问该链接,它说权限被拒绝。您的错误消息还显示
crypto,您可以使用其他客户端访问此 HLS 链接吗? -
@BenButterworth 是的。它在 HTML5 播放器上运行良好,在 exoplayer 上也运行良好。
-
在 dispose 或 state management 中使用chewie。
标签: android ios flutter dart vimeo