safari - YouTube 嵌入请求仅针对 Safari 进行了更改 –> chromeless 播放器无法操作

标签 safari youtube webkit youtube-api youtube-javascript-api

我有一个嵌入了 YouTube Flash (AS3) 播放器的网站,但它无法再在 Safari 中运行。

查看this fiddle ,其代码仅为:

<object type="application/x-shockwave-flash"
              data="http://www.youtube.com/apiplayer">
</object>

在 Chrome、Firefox 和 IE 中,请求 http://www.youtube.com/apiplayer正常返回 (200)。在 Safari 中,服务器返回 303 到 https://youtube.googleapis.com/apiplayer .

此播放器已加载,但我无法在 JavaScript 中与其交互。我认为这是因为它是通过 https 提供的 - 尽管我明确请求 http - 导致混合模式安全问题。这是我在尝试对播放器执行任何操作时看到的错误(这是完整的 chromeless 播放器嵌入代码):

>>> player.playVideo()
Error: Error calling method on NPObject.

如果我将 Safari 的用户代理更改为其他内容,甚至只是修改“Safari”一词,则会加载正确的播放器。我加载 Vimeo 和 Viddler 播放器( http://vimeo.com/moogaloop.swfhttp://www.viddler.com/player/key )也没有遇到任何问题。

我在稳定的 Safari 版本和 WebKit nightly 中都看到了这一点。当我禁用扩展程序并处于隐私浏览模式时也会发生这种情况。

我尝试通过嵌入 http://youtube.googleapis.com 来解决这个问题,希望不会有重定向,并且我可以通过 http 获取播放器。但它仍然重定向到 https,并且在所有浏览器中都会这样做。

我提交了this YouTube API ticket上周,但到目前为止还没有回复。

最佳答案

Safari 和 YouTube 似乎存在播放问题。 MacRumours http://forums.macrumors.com/showthread.php?t=1098606 中建议了多种解决方案,比如切换到32位浏览器、使用非HTML5版本等。 看起来可行的一个如下:

Select Safari > Preference > Privacy > Details

Search for Youtube

Delete the cookie called youtube-nocookie.com then click Done.

Restart Safari and try again.

关于safari - YouTube 嵌入请求仅针对 Safari 进行了更改 –> chromeless 播放器无法操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698403/

相关文章:

javascript - 通过浏览器的 "BACK"函数加载页面时触发 onload 脚本(js 或 jQuery)

css - Safari 剪切按钮的文本

JavaScript - 我如何告诉 Chrome、Firefox、Safari 浏览器允许我禁用刷新按钮?

youtube - 启用自动播放功能后,为什么某些YouTube嵌入不可用?

css - 为什么网络浏览器不应用 CSS :active state on activation by enter key?

audio - 仅从 youtube 视频下载音频

css: webkit-input-placeholder 背景色

animation - 将 {transform-origin : x, y;} 从元素更改为父 DIV?

css - 在 chrome 中,当 <p> 中某些 <a> 或 <strong> 的行为就像它们处于 "inline kinda absolute"位置(您需要查看图片)

objective-c - YouTube URL 方案 tvOS