点击下载教程相关资源
现在大多数浏览器都可以播放带有 h264视频的 MP4。如果您想要单一来源,并且既不考虑实时流媒体也不考虑自适应流媒体,那么带有 h264 视频和 acc 音频的 MP4 是一个不错的选择。
最常见的不支持 MP4 的浏览器位于 Linux 上,用户可能需要安装额外的编解码器支持,但在某些情况下并不希望这样做。您可以提供一系列替代来源。webm和/或ogv作为后备很有用,但所有支持 MP4 的浏览器都不支持它们。
Video.js 7+ 支持 HLS 和 MPEG-DASH 作为标准,因为它包括http-streaming,它使用媒体源扩展在现代浏览器中播放这些格式。如果选择单一格式,HLS 更方便,因为 iOS 和一些不支持 MSE 的 Android 浏览器确实具有原生 HLS 支持。
HLS 无法在 Windows 7 上的 IE 11 上使用,因为 Windows 7 不支持 MSE。
对于较旧的 Video.js 版本,http-streaming或其前身videojs-contrib-hls和videojs-contrib-dash添加了类似的支持,但为了获得最佳结果,请使用最新的 Video.js。
您的浏览器/操作系统是否支持您尝试播放的媒体类型?
您是否有一个 Video.js 插件可以向 Video.js 添加对媒体格式的支持?例如videojs-youtube
验证您的视频使用的MIME 类型/内容类型是否正确。这用于确定 Video.js 是否可以播放某种类型的媒体。
MP4 格式可以包含许多编解码器中的视频和音频数据,但浏览器中的 MP4 播放通常仅支持 h264 视频和 MP3 或 AAC 音频。
文件扩展名并不总是反映文件内容。例如,一些低端手机以 3GP 格式保存视频,但为其提供 MP4 扩展名。这些文件将不会播放。
Flash 的生命周期已结束,浏览器不再支持 Flash。
您的服务器必须正确支持字节范围请求,因为 Chrome 和 Safari 依赖于它们:
大多数服务器默认支持此功能。
如果您通过服务器端脚本 (PHP) 代理媒体文件,则该脚本必须实现范围。PHP 默认情况下不这样做。
不这样做的影响范围从搜索被破坏到根本无法播放(在 iOS 上)。
您的服务器必须为正在发送的媒体返回正确的mime-type/content-type标头。
如果出现以下情况,您的服务器必须实现CORS(跨源资源)标头:
您使用的是 HLS 或 MPEG-DASH 等格式,并且您的媒体是从与您的页面不同的域提供的。
您正在使用文本轨道(标题、副标题等),并且它们是从与您的页面不同的域提供的。
如果您的播放器位于 iframe 中,则该 iframe和任何父 iframe 必须具有以下属性才能允许全屏显示:
allowfullscreen
webkitallowfullscreen
mozallowfullscreen
确保媒体主机支持字节范围请求,这可能会破坏播放。有关详细信息,请参阅托管媒体时出现的问题。
如果您的媒体需要很长时间才能开始播放或在播放之前下载整个媒体:
媒体的元数据可能未包含在媒体的开头。在 MP4 术语中,这称为“moov 原子”。许多编码器默认配置为执行此操作,其他编码器可能要求您选择“快速启动”或“优化流式传输”选项。
当从 DOM 中删除与组件关联的元素但未删除与该元素关联的事件处理程序时,会引发此错误。这几乎总是由于在组件上调用 dispose 时未释放事件侦听器。
要解决此问题,请确保在处置时清除所有事件侦听器。
此类错误(具体情况X有所不同)可能是由网络工作人员使用的转译破坏代码引起的。有关如何防止这种情况的详细信息,请参阅webpack 指南。