【发布时间】:2016-02-15 15:55:33
【问题描述】:
我正在尝试检测我不知道类型的本地文件(或 blob)是否可以被浏览器播放...
我真的可以做到:
- 通过使用 setTimeout 和 onload,但我们现在永远不会触发 onload 函数...
- 通过使用 file.type 但它只使用文件名...
- 使用readArrayBuffer,大文件没办法...
有什么方法可以检测输入文件按钮中的文件是否可以播放?
【问题讨论】:
我正在尝试检测我不知道类型的本地文件(或 blob)是否可以被浏览器播放...
我真的可以做到:
有什么方法可以检测输入文件按钮中的文件是否可以播放?
【问题讨论】:
您可以对文件进行某种分析,模仿 ffprove 提供的功能类型,然后将推导出的视频特征与每个浏览器类型的已知视频特征图进行比较。
正如您所指出的,文件类型只是一个粗略的指南 - 例如 mp4 文件可能具有许多不同的“特征”,例如编码格式等,其中一些平台将支持某些平台,而其他平台则不支持。
但是,这实现起来会很复杂,随着时间的推移,您必须不断更新视频类型支持到浏览器类型的映射。
正如我认为您在问题中所说,最简单和最可靠的方法是尝试播放视频,然后捕获生成的任何错误。
【讨论】: