我在flex中写了一个游戏,那个游戏有声音。我从这样的资源加载声音来播放声音文件,这是函数:
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)
当前项目中包中的“声音”。当我在日食中建立时,它工作正常,但当我把这个游戏放在网上时,我听不到音乐。
有人能告诉我如何解决吗
答案 0 :(得分:0)
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));
答案 1 :(得分:0)
试试吧。
var urlReq:URLRequest = new URLRequest("assets/sound/sound3.mp3");
var sound:Sound= new Sound(urlReq);
sound.play();
答案 2 :(得分:0)
您是否曾尝试通过
修改声音文件删除声音文件中的所有元数据。
将其导出为新的MP3文件。
加载太大了吗?尝试添加错误事件以进行收听。