apache-flex 无法在Flex中播放声音文件

3okqufwl  于 2022-11-01  发布在  Apache
关注(0)|答案(3)|浏览(209)

我用Flex写了一个游戏,这个游戏有声音。2我从这样一个资源中加载声音来播放声音文件,这个函数是:

public function playSound(value:String, vol:Number):void
{

 mySound=new Sound();
 var urlRequest:URLRequest=new URLRequest(value);
 mySound.load(urlRequest);
 sChannel=mySound.play(0, 0, new SoundTransform(vol, 0));
}

当我想播放声音时,我这样调用它:

playSound("sounds/abc.mp3", 1)

在当前项目中的包中的“声音”。当我在eclipse中构建时,它工作正常,但是当我把那个游戏放到网上时,我听不到音乐。
谁能告诉我怎么修吗

3vpjnl9f

3vpjnl9f1#

您是否曾尝试通过以下方式修改声音文件
1.删除声音文件中的所有元数据。
1.将其导出为新的MP3文件。
1.它是否太大而无法加载?请尝试添加要侦听的错误事件。

uajslkp6

uajslkp62#

var urlRequest:URLRequest=new URLRequest(value);

你传递的是一个相对路径,所以当它在远程机器上运行时,它会在那里寻找声音,但显然没有找到。你需要嵌入声音,如this question中所述:

[Embed(source="myfile.mp3")]
[Bindable] //Not required. Just an example of using multiple meta tags.  
public var soundCls:Class;

然后,我有点生疏了,但我相信

sChannel = new soundCls().play(0, 0, new SoundTransform(vol, 0));
b1zrtrql

b1zrtrql3#

试试这个。

var urlReq:URLRequest = new URLRequest("assets/sound/sound3.mp3");
    var sound:Sound= new Sound(urlReq);

    sound.play();

相关问题