Youtube Flash API (AS3) 在 Firefox 中不工作,但在 Chrome 中工作

Youtube Flash API (AS3) not working in Firefox but in Chrome

我想知道为什么最近我自己编写的 flash-video-player(使用 YouTube ActionScript 3.0 Player API)在 Firefox(Win,45.0.1)中不再工作,但它正在工作在 Chrome(Win,49.0.2623.110 m)中仍然很好。

视频播放器的图形元素在两者中都能正常加载,因此 flash 插件可以正常工作,但只有 Chrome 显示实际的 youtube 视频。

我知道闪光灯 API 已被弃用 (https://developers.google.com/youtube/flash_api_reference),但为什么它在 Chrome 中仍然有效?关于如何在 Firefox 中再次将其发送到 运行 有什么想法吗?

PS: 由于视频播放器及其功能的复杂性,我无法切换到 html5 版本的 youtube-player-api.

更新:

<object width="640" height="360" id="video" data="video.swf" type="application/x-shockwave-flash">
            <param value="video.swf" name="movie">
            <param value="xml=xml?i=48-96-43" name="FlashVars">
            <param value="high" name="quality">
            <param value="#181818" name="bgcolor">
            <param value="true" name="play">
            <param value="true" name="loop">
            <param value="window" name="wmode">
            <param value="showall" name="scale">
            <param value="true" name="menu">
            <param value="false" name="devicefont">
            <param value="" name="salign">
            <param value="sameDomain" name="allowScriptAccess">
            <a href="http://www.adobe.com/go/getflash">
                <img alt="Get Adobe Flash player" src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif">
            </a>
        </object>

这是一个 chromeless Youtube SWF working in Firefox 的例子。

简短的回答是...确保您的 SWF 文件是从 https 位置提供的。如果没有 (SSL) 绿色挂锁,SWF 将不会加载任何其他外部数据。这似乎是 Firefox 对试图访问更多外部数据的 Flash 内容的新(安全)期望。

同时更新 AS3 代码中的所有 http:// 引用,使其成为 https://

示例为:

  • Security.allowDomain("https://www.youtube.com");
  • loader.load(new URLRequest ("https://www.youtube.com/apiplayer?version=3") );
  • player.cueVideoByUrl("https://www.youtube.com/v/YOUR_VID_ID?version=3");