6

有谁知道 Safari 是否支持crossoriginHTML5<video>标签上的属性?我从响应所有需要的 CORS 标头的服务器提供视频,并使用下面的标记将视频嵌入到我的页面中。该页面是从不同的域提供的。

<video controls crossorigin="anonymous" src="http://example.com/movie.mp4">
toDataURL然后我将视频绘制到画布上,并使用API 从画布中获取图像。这适用于 Chrome 和 Firefox,但 Safari 会抛出安全错误,就好像视频上没有crossorigin属性一样。

有任何想法吗?

4

4 回答 4

1

看来 Safari 不支持 crossorgin 属性,但我找不到任何官方的。有这条推文https://twitter.com/sonnypiers/status/187513545397776384有图片的解决方法,但我认为它对视频没有帮助。

于 2012-12-24T07:58:51.850 回答
0

根据我们的测试,我们的 safari 不支持跨域。我们正在添加跨域属性以在音频请求中使用 COR(将报告情况如何)。

有趣的是,跨域在 http 下似乎可以正常工作,但在 https 下却不行。如果您阅读音频/视频标签(称为媒体标签)的 w3 规范,它确实说它们受到跨域限制。

在音频标签中支持 CORS: https ://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes

现在,另一个有趣的事实是 safari 根据文件扩展名选择 myme 类型(什么?)。带有 *.mp4 作为扩展名的文件可以正常播放。相同的文件重命名为其他没有。

于 2013-07-22T18:01:15.990 回答
0

这是视频的解决方法:

                         $.ajax({
                            type: 'get',
                            url : videoUrlFromAnotherDomain,
                            crossDomain: 'true',
                            success: function(data) {
                                // get a base64 version of the video!
                                var base64 = window.btoa(data);
                                // get a new url!
                                var newURL = 'data:video/mp4' + ';base64,' + base64;
                                // set the src on the video source element to the new url
                                video.find("source").attr("src", newURL);
                            }

用 newURL 中的“video/mp4”替换任何类型的视频。

于 2014-07-25T19:08:46.720 回答
-3

一开始,你需要CORS吗?直接链接到它似乎在 safari 中有效。我尝试使用 htmlinstant.com

<video src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" controls />

如果您需要 CORS,那么下面的页面会说对它的支持是在 2011 年 5 月添加的。虽然还没有测试过。 https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes

有关画布上视频的示例,请参阅此链接的第 5.4 节:http: //www.html5rocks.com/en/tutorials/video/basics/ 我测试过,它在我的 safari 中运行。

于 2012-08-12T06:49:23.790 回答