直接上代码,在Flash Builder 4中新建 FLEX项目,复制代码可以可以直接运行
需要将 file = "D:\\voice\\3791.MP3"; 改为自己的路径
以后还准备增加流式播放!
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
creationComplete="initMusic()"
height="304" width="808">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.adobe.serialization.json.JSON;
import flash.utils.ByteArray;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.core.UIComponent;
import mx.events.IndexChangedEvent;
import mx.managers.PopUpManager;
import mx.printing.FlexPrintJob;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
private var serverIP:String = "http://127.0.0.1";
private var ba:ByteArray = new ByteArray();
private var soundRequest:URLRequest;
private var sound:Sound = new Sound(); //使用Sound对象来获取音乐文件播放声音
private var chanel:SoundChannel; //引入SoundChannel对象来精确控制声音
private var vol:SoundTransform; //通过设置SoundTransform对象的volume属性控制音量
private var stopPosition:int=0; //使用stopPosition记录暂停音乐时的位置
private var soundState:int=1; //使用soundState记录是否静音
private var soundValue:int=2; //记录静音前的音量
private var playState:int=0; //使用playState记录声音是否被停止(包括暂停)
private var totalTime:String = "00:00";//语音文件总时间
private var params:Object; //URL参数列表
private var _sperite:Sprite; //用于绘制声音波形
//初始化
private function initMusic():void{
var args:Object = getParams(); //获取URL中的参数列表
var file:String = serverIP + args.audio+".mp3";//得到语音文件名
// file = "http://127.0.0.1/voice/3416.mp3";
//对播放控制按钮和滑动条添加鼠标动作监听
soundBtn.addEventListener(MouseEvent.CLICK,onSoundClick);//有声音
soundBtnJ.a