工作中需要用到flex播放铃声提醒,上网搜索了一下方法,记录如下:
1. 首先定义用到的变量:_sound,_channel,_position,含义见注释;
2. 定义获取项目根路径的方法,如果有更好的方式请留言,谢谢;
3. 定义播放音乐的方法,创建url、加载文件、播放;
4. 定义点击按钮,其实怎么触发都可以。
<![CDATA[
private var _sound:Sound;
private var _channel:SoundChannel; // 声音声道
private var _position:Number = 0; // 音乐播放开始位置
// 播放音乐文件
private function playMp3():void{
var rootURL:String = getRootURI();
var musicURL:URLRequest = new URLRequest(rootURL + "assets/music/lingsheng.mp3");
_sound = new Sound();
_sound.load(musicURL); // 加载音乐的URL路径
_channel = _sound.play(_position); // 从音乐什么位置开始播放
}
// 获取项目url根路径
public function getRootURI():String {
var swfUrl:String = this.parentApplication.url;
var endIndex:int = swfUrl.indexOf("Main.swf"); //搜索swf目录的路径位置
var webUrl:String = swfUrl.substring(0, endIndex); //截取到swf目录前的url
return webUrl;
}
]]>
<mx:Button label="播放" id="playMp3Btn" click="playMp3()" />