我需要一种播放在客户端 Web 浏览器中创建的 HLS M3U8 播放列表的方法,而不是使用外部文件。
我目前正在生成一个字符串,并创建一个文件,稍后使用对象 URL 进行链接。
这个系统在所有iOS 10版本和OSX上都可以正常工作,但是一旦在任何运行iOS 11版本的设备上运行它,视频元素就会出现错误代码4“MEDIA_ERR_SRC_NOT_SUPPORTED”。
我找不到任何路径说明,表明为什么这在iOS 11中无法工作。有没有其他方法可以解决这个问题,既适用于iOS 10又适用于11?
如果您能提供任何帮助或洞察这个问题,我们将不胜感激。
编辑:我创建了一个jsfiddle来帮助理解这个问题。 https://jsfiddle.net/x2oa8nh2/8/ 上面的视频在iOS 10和11(以及OSX Safari)上都可以工作。下面的视频在iOS 11上无法工作。
我目前正在生成一个字符串,并创建一个文件,稍后使用对象 URL 进行链接。
const playlistFile = new File([playlistString], playlistName, { type: 'application/x-mpegURL' });
const playlistURL = URL.createObjectURL(playlistFile);
然后将此URL用作视频元素中的源。
<video playsinline="" controls="" src="blob:http://localhost:8080/b9a0b81f-d469-4004-9f6b-a577325e2cf3"></video>
这个系统在所有iOS 10版本和OSX上都可以正常工作,但是一旦在任何运行iOS 11版本的设备上运行它,视频元素就会出现错误代码4“MEDIA_ERR_SRC_NOT_SUPPORTED”。
我找不到任何路径说明,表明为什么这在iOS 11中无法工作。有没有其他方法可以解决这个问题,既适用于iOS 10又适用于11?
如果您能提供任何帮助或洞察这个问题,我们将不胜感激。
编辑:我创建了一个jsfiddle来帮助理解这个问题。 https://jsfiddle.net/x2oa8nh2/8/ 上面的视频在iOS 10和11(以及OSX Safari)上都可以工作。下面的视频在iOS 11上无法工作。