如何在Flash Builder中加载YouTube视频?

时间:2015-01-22 17:01:20

标签: actionscript-3 flash flex

我试图在Flash Builder中播放Youtube视频。每次播放文件时都会收到错误消息:

SecurityError: Error #2121: Security sandbox violation: Loader.content:     https://www.youtube.com/v/FGtTEmBR7Sk cannot access https://s.ytimg.com/yts/swfbin/player-vflQiDuyQ/watch_as3.swf. This may be worked around by calling Security.allowDomain.
at flash.display::Loader/get content()
at com.google.youtube.application::SwfProxy/onRequestParameters()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.google.youtube.model::YouTubeEnvironment()
at com.google.youtube.application::WatchPageVideoApplication/createYouTubeEnvironment()
at com.google.youtube.application::VideoApplication/onLoaderInfoInit()

我尝试过使用推荐的工作(见下文),但我没有做任何事情会停止错误信息。我还从网上下载并试用了几个示例文件,但每次收到错误消息。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="init()">
<mx:Script>
    <![CDATA[
        [Bindable] private var videoUrl:String;         
        private function videoToPlay():void{
            Security.allowDomain("http://www.youtube.com/v/FGtTEmBR7Sk");
            Security.allowDomain("https://s.ytimg.com");
            Security.allowDomain("https://s.ytimg.com/yts/swfbin/player-vflQiDuyQ/watch_as3.swf");
            Security.allowDomain("*");
            videoUrl = "http://www.youtube.com/v/FGtTEmBR7Sk";  
        }

    ]]>
</mx:Script>
<mx:Button    label="Play"  click="videoToPlay()"  useHandCursor="true" buttonMode="true" />

<mx:Canvas>
    <mx:SWFLoader id="swfLoader" source="{videoUrl}"  width="640"   height="387" />
</mx:Canvas>
</mx:Application>

任何人都可以告诉我我的代码有什么问题,或者指向一个显示如何在Flash Builder中嵌入youtube文件的工作示例?

1 个答案:

答案 0 :(得分:2)

  • 您已经(看到)了#2121安全错误,因为您使用的是Flash Player debug version,但在使用&#34;正常&#34;版本你将得不到任何东西(正如你所说),你的播放器将加载youtube内容作为任何其他播放器没有问题。 Flash Player的调试版本供开发人员用于调试和测试目的,因此如果您的内容通常使用&#34; normal&#34;正常加载,请不要关心这些安全警报。所有非开发人员用户使用的版本。

  • youtube.com 尝试访问 s.ytimg.com 中的watch_as3.swf文件时会触发安全错误,所以在这里无法避免该错误,因为Security.allowDomain应该在我认识的谷歌维护的swf文件中使用;)

  • Security.allowDomain函数的使用方式如下:

    // we use only the domain name not all the file url
    Security.allowDomain('example.com');       // or http://example.com

    // or the ip address 
    Security.allowDomain('10.10.10.10');       // or http://10.10.10.10

    // or a wildcard "*" to allow all domains
    Security.allowDomain('*');

希望可以提供帮助。