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

How do I load a YouTube video in Flash Builder?

我正在尝试在 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 文件的工作示例吗?

  • 您得到(看到)#2121 安全错误,因为您使用的是 Flash Player debug version,但是当使用 "normal" 版本时,您什么也得不到(因为您虽然说 ) 并且您的播放器将像任何其他播放器一样毫无问题地加载 youtube 内容。 Flash Player 的调试版本供开发人员用于调试和测试目的,因此如果您的内容使用所有非开发人员用户使用的 "normal" 版本正常加载,则无需关心这些安全警报。

  • youtube.com 尝试从 [= 访问 watch_as3.swf 文件时引发安全错误40=],所以在这里您无法避免该错误,因为 Security.allowDomain 应该用于据我所知由 google 维护的 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('*');

希望能帮到你。