尝试在视频标签上设置跨域属性时视频播放已损坏

Posted

技术标签:

【中文标题】尝试在视频标签上设置跨域属性时视频播放已损坏【英文标题】:when trying to set crossorigin attribute on video tag video playback is damaged 【发布时间】:2014-08-23 03:31:55 【问题描述】:

该问题出现在 chrome 浏览器桌面上。 尝试向视频添加轨道元素时出现以下错误:

  <video ...>
       <track..>
    </video>

http://jsfiddle.net/itayKinnrot/6Up5t/1/

当我将 crossorigin 属性添加到视频时(如错误所示),视频播放已损坏(在暂停后尝试恢复视频时 - 无播放 + 来自视频元素的错误) http://jsfiddle.net/itayKinnrot/PrCZ5/1/

我在这里做错了什么。

【问题讨论】:

【参考方案1】:

我注意到在您的第二把小提琴中,(视频的)资源请求正在被 302 重定向。 似乎 Chrome 在重定向后无法正确处理启用 CORS 的视频(可能是由于处理缓冲/缓存的实现中的错误)。

这是在开发者工具的网络标签中的样子:

将视频标签的src 属性替换为重定向的目标后,我可以正确地搜索视频并暂停/恢复播放。网络日志显示成功的字节范围请求。请注意,开发者工具不会显示第一个请求的分块响应,而只会显示一个连续请求。

这种行为叫“bug”,所以在http://crbug.com/new 开一个新问题似乎是最好的做法。尝试创建一个小型测试用例(最好是自包含的),以便更容易查明错误。请在您创建问题时添加带有错误报告链接的评论。

【讨论】:

以上是关于尝试在视频标签上设置跨域属性时视频播放已损坏的主要内容,如果未能解决你的问题,请参考以下文章

播放 Vimeo 视频时暂停引导轮播

仿微博视频边下边播之滑动TableView自动播放-b

循环播放 HTML5 视频,

实现video视频播放记录当前播放进度,下次播放时从上次播放进度开始播放

React (HTML) 视频标签不会在移动设备上自动播放

Unity 2D 中的视频播放器播放音频但在处于非活动状态后设置为活动时不显示视觉效果