AS3 AIR在线加载mp3 - 错误#2044:未处理的IOErrorEvent:

时间:2015-07-25 20:38:30

标签: actionscript-3 audio air

更新:任何版本的AIR都会阻止任何外部内容。这个简单的pic脚本也不起作用。

var my_loader:Loader = new Loader();
my_loader.load(new URLRequest("http://edvizenor.com/images/Ed-Vizenor.png"));
addChild(my_loader);

但我如何修复?

更新:更多错误信息:

Attempting to launch and connect to Player using URL C:\Flash Apps 2014\Real Projects\Fr Letherby\Homily.swf
[SWF] C:\Flash Apps 2014\Real Projects\Fr Letherby\Homily.swf - 981 bytes after decompression
*** Security Sandbox Violation ***
Connection to http://traffic.libsyn.com/frleatherby/2015Jul18.mp3 halted - not permitted from file:///C|/Flash%20Apps%202014/Real%20Projects/Fr%20Letherby/Homily.swf
-- Untrusted local SWFs may not contact the Internet.
SecurityError: Error #2028: Local-with-filesystem SWF file file:///C|/Flash%20Apps%202014/Real%20Projects/Fr%20Letherby/Homily.swf cannot access Internet URL http://traffic.libsyn.com/frleatherby/2015Jul18.mp3.
    at flash.media::Sound/_load()
    at flash.media::Sound/load()
    at Homily_fla::MainTimeline/frame1()[Homily_fla.MainTimeline::frame1:2]
Cannot display source code at this location.

以下是原始帖子。

我刚刚使用Windows 8获得了一个新的comp并安装了创意云。我正在使用Flash IDE,我正在尝试从在线加载声音。这是一个简单的脚本,但我在下面收到此错误。

注意:我使用Air 17.0 for Android。它不起作用。但是,当我在Flash播放器中加载相同的脚本时,它可以工作。

正如您所看到的,它是一个有效的实时链接:http://traffic.libsyn.com/frleatherby/2015Jul18.mp3

但它不会播放。住所阻止了这个流媒体功能吗?我错过了什么简单的路线。这之前很容易。它是我的新电脑上的设置吗?谢谢你的任何提示。

package  {

import flash.display.MovieClip;
import flash.events.Event; 
import flash.media.Sound; 
import flash.net.URLRequest; 

    public class Main extends MovieClip {


        public function Main() {
            // constructor code
            var mySound:Sound = new Sound();
            mySound.load(new URLRequest("http://traffic.libsyn.com/frleatherby/2015Jul18.mp3"));
            mySound.play();
        }


    }

}

错误

Error #2044: Unhandled IOErrorEvent:. text=Error #2032: Stream Error.
    at Main()[C:\Flash Apps 2014\Real Projects\Fr Letherby\Main.as:13]
    at runtime::ContentPlayer/loadInitialContent()
    at runtime::ContentPlayer/playRawContent()
    at runtime::ContentPlayer/playContent()
    at runtime::AppRunner/run()
    at ADLAppEntry/run()
    at global/runtime::ADLEntry()
[UnloadSWF] Homily.swf
Test Movie terminated.

1 个答案:

答案 0 :(得分:0)

从您的更新中,这似乎是违反安全规则的,您需要为AIR提供必要的权限才能执行此操作。在申请开始时试试这个:

Security.allowDomain("Your Domain URL here");

并且,在Flash IDE中,转到文件 - >发布设置 - > Flash->本地播放安全性,然后选择“仅访问本地文件”或“仅限访问网络”。

如果您的应用程序是基于Web的,并且正在访问托管在.swf文件的不同域上的某种Web服务,则如果您访问的域没有沙箱,则可能会出现沙箱违规有效的跨域政策到位。您还需要在要尝试访问的服务器的根目录中放置 crossdomain.xml 文件。它看起来像这样:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*" />
    <site-control permitted-cross-domain-policies="master-only"/>
</cross-domain-policy>

希望这有帮助。