Vimeo离线视频播放问题

19

我使用了可在Flutter上使用的fijkplayer库来播放m3u8视频。没有下载而是直接播放时工作正常,而只有在试图播放已下载视频时才出现问题。我尝试了其他库,如chewieflutter_jikplayerflutter_tencentplayer等,但都不起作用。

这个问题只出现在Vimeo的链接中。我使用了一个公共的链接实现了一切,然后发现了这个错误。

这个输出似乎是一个与协议相关的问题。

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

如果需要任何东西,请让我知道,我会在这里更新。


1
我不知道你是否遇到了这个问题,请查看 https://dev59.com/ZlUL5IYBdhLWcg3wYHDD - Yadu
1
我之前使用flutter_jikplayer实现过这个功能,代码如下:var option1 = IjkOption(IjkOptionCategory.format, "protocol_whitelist", "concat,http,tcp,https,tls,file"); controller.setIjkPlayerOptions( [TargetPlatform.iOS, TargetPlatform.android], [option1].toSet(), );但是在我的情况下并没有起作用。 - iPatel
1
我尝试访问那个链接,它说权限被拒绝。你的错误信息也显示crypto,你能否使用不同的客户端访问这个HLS链接? - Ben Butterworth
@BenButterworth 是的。在 HTML5 播放器上它表现良好,并且也可以在 exoplayer 上使用。 - iPatel
1
使用Chewie结合Dispose或状态管理。 - Mouaz M Shahmeh
1个回答

1
HLS文件在一定时间后会失效。因此,如果你下载的是m3u8文件,实际上并不是下载视频本身,而是一个指向播放列表/清单文件的链接,该文件告诉播放器从哪里获取真正的(通常是mp4)视频文件。你可以看到类似的例子与M3U(这个例子链接到mp3文件,但是m3u8通常链接到mp4文件)。
所以,你应该从Vimeo下载实际的mp4文件,然后将这些文件传递给你的播放器。我在这里给出了一个解决方法链接。(这里是使用Flutter下载的方法链接)。
mp4文件的链接也会过期。但是如果你在过期前下载它们,就可以随时通过磁盘上的本地文件URL来访问它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接