Youtube Flash API(AS3)不适用于Firefox,但适用于Chrome



我想知道为什么最近我自己编程的flash视频播放器(使用YouTube ActionScript 3.0 player API)在Firefox中不再工作(Win,45.0.1),但在Chrome中仍然可以工作(Win,49.0.2623.110 m)。

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

我知道flash API已被弃用(https://developers.google.com/youtube/flash_api_reference),但为什么它仍然可以在Chrome中工作?有什么想法可以让它再次在firefox中运行吗?

PS:由于视频播放器及其功能的复杂性,我无法切换到html5版本的youtube播放器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>

这里有一个无铬Youtube SWF在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");

相关内容

  • 没有找到相关文章

最新更新