flex 音频播放器

<?xml version="1.0" encoding="utf-8"?>
<s:Application width="100%"
               height="100%"
               xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               xmlns:diagram="com.ibm.ilog.elixir.diagram.*"
               fontSize="12"
               creationComplete="init()">
    <fx:Script>
        <![CDATA[
            private var sound:Sound;
            private var channel:SoundChannel=new SoundChannel();

            private function init():void
            {
            }

            private function playMusic1():void
            {
                try
                {
                    channel.stop();
                }
                catch (e:Error)
                {
                }
                //new Sound('要加载的音频文件','用SoundLoaderContext类设置声音的缓冲,确保声音播放的更流畅,缓冲区:5秒')
                sound=new Sound(new URLRequest("assets/music/music1.mp3"), new SoundLoaderContext(5000));
                //循环播放
//                channel=sound.play(0, int.MAX_VALUE);
                //播放一次
                channel=sound.play();
                //监听播放完毕后,切换播放/停止按钮
                channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
                play1BTN.visible=play1BTN.includeInLayout=false;
                stop1BTN.visible=stop1BTN.includeInLayout=true;
                if (play2BTN.visible)
                {
                    play2BTN.visible=play2BTN.includeInLayout=true;
                    stop2BTN.visible=stop2BTN.includeInLayout=false;
                }
                else
                {
                    play2BTN.visible=play2BTN.includeInLayout=true;
                    stop2BTN.visible=stop2BTN.includeInLayout=false;
                }
            }

            private function onComplete(event:Event):void
            {
                play1BTN.visible=play1BTN.includeInLayout=true;
                stop1BTN.visible=stop1BTN.includeInLayout=false;
                play2BTN.visible=play2BTN.includeInLayout=true;
                stop2BTN.visible=stop2BTN.includeInLayout=false;
            }

            private function stopMusic1():void
            {
                channel.stop();
                play1BTN.visible=play1BTN.includeInLayout=true;
                stop1BTN.visible=stop1BTN.includeInLayout=false;
            }

            private function playMusic2():void
            {
                try
                {
                    channel.stop();
                }
                catch (e:Error)
                {
                }
                sound=new Sound(new URLRequest("assets/music/music2.mp3"), new SoundLoaderContext(5000));
//                channel=sound.play(0, int.MAX_VALUE);
                channel=sound.play();
                channel.addEventListener(Event.SOUND_COMPLETE, onComplete);
                play2BTN.visible=play2BTN.includeInLayout=false;
                stop2BTN.visible=stop2BTN.includeInLayout=true;
                if (stop2BTN.visible)
                {
                    play1BTN.visible=play1BTN.includeInLayout=true;
                    stop1BTN.visible=stop1BTN.includeInLayout=false;
                }
                else
                {
                    play1BTN.visible=play1BTN.includeInLayout=false;
                    stop1BTN.visible=stop1BTN.includeInLayout=true;
                }
            }

            private function stopMusic2():void
            {
                channel.stop();
                play2BTN.visible=play2BTN.includeInLayout=true;
                stop2BTN.visible=stop2BTN.includeInLayout=false;
            }
        ]]>
    </fx:Script>
    <s:HGroup width="100%"
              height="100%"
              verticalAlign="middle"
              horizontalAlign="center">
        <mx:Panel width="249"
                  height="237"
                  x="222"
                  y="48"
                  layout="absolute"
                  title="音乐播放器1">
            <mx:HBox width="200"
                     height="35"
                     x="19"
                     y="23">
                <mx:Button id="play1BTN"
                           width="60"
                           height="31"
                           label="播放1"
                           click="playMusic1()"/>
                <mx:Button id="stop1BTN"
                           width="60"
                           height="31"
                           visible="false"
                           includeInLayout="false"
                           label="停止1"
                           click="stopMusic1()"/>
            </mx:HBox>
        </mx:Panel>
        <mx:Panel width="249"
                  height="237"
                  x="222"
                  y="48"
                  layout="absolute"
                  title="音乐播放器2">
            <mx:HBox width="200"
                     height="35"
                     x="19"
                     y="23">
                <mx:Button id="play2BTN"
                           width="60"
                           height="31"
                           label="播放2"
                           click="playMusic2()"/>
                <mx:Button id="stop2BTN"
                           width="60"
                           height="31"
                           visible="false"
                           includeInLayout="false"
                           label="停止2"
                           click="stopMusic2()"/>
            </mx:HBox>
        </mx:Panel>
    </s:HGroup>
</s:Application>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值