zoukankan      html  css  js  c++  java
  • 声音类 的练习

                                                                             播放与停止

    砸在舞台添加一个小按钮,然后在第1帧写上如下代码:

    import flash.net.URLRequest;

    import flash.media.Sound;

    import flash.media.SoundChannel;

    import flash.events.MouseEvent;

    var url:URLRequest = new URLRequest("kate havnevik - solo.mp3");

    var sound:Sound = new Sound();

    sound.load(url);

    var position:Number = 0;

    var channel:SoundChannel = new SoundChannel();

    btn.label = "播放";

    btn.addEventListener(MouseEvent.CLICK,PS);

    function PS(e:MouseEvent):void

    {

        if(btn.label == "播放")

          {

             channel = sound.play(position);

            btn.label = "停止";

          }

      else

     {

      channel.stop();

      position = channel.position;

      btn.label = "播放";

     }

    }

                                                                                  播放与暂停

    与播放与停止类似,相差不大。

    import flash.media.Sound;

    import flash.net.URLRequest;

    import flash.media.SoundChannel;

    import flash.events.MouseEvent;

    var sound:Sound = new Sound();

    sound.load(new URLRequest("kate havnevik - solo.mp3"));

    var p:Number = 0;

    var channel:SoundChannel = new SoundChannel();

    btn.label = "播放";

    btn.addEventListener(MouseEvent.CLICK,PS);

    function PS(e:MouseEvent):void

    {  

    if(btn.label == "播放")

     {  

     channel = sound.play(p);

      btn.label = "暂停";

     }

    else

     {  

     p = channel.position;

      channel.stop();

      btn.label = "播放";

     }

    }

                                                     加载进度条

    import flash.display.Sprite;

    import flash.net.URLRequest;

    import flash.media.Sound;

    import flash.media.SoundChannel;

    import flash.events.ProgressEvent;

    import flash.events.Event;

    //进度条

    var bar:Sprite = new Sprite();

    bar.graphics.beginFill(0x123456);

    bar.graphics.drawRect(0,0,350,20);

    bar.graphics.endFill();

    addChild(bar);

    bar.x = 75;

    bar.y = 350;

    bar.scaleX = 0;

    var bar2:Sprite = new Sprite();

    bar2.graphics.beginFill(0x876543);

    bar2.graphics.drawRect(0,0,350,20);

    bar2.graphics.endFill(); addChild(bar2);

    bar2.x = 75;

    bar2.y = 350;

    bar2.scaleX = 0;

    var url:URLRequest = new URLRequest("1.mp3");

    var sound:Sound = new Sound();

    sound.load(url);

    var channel:SoundChannel = new SoundChannel();

    sound.addEventListener(ProgressEvent.PROGRESS,Progress);

    sound.addEventListener(Event.COMPLETE,addSound);

    addEventListener(Event.ENTER_FRAME,changeV);

    function Progress(e:ProgressEvent):void

    {

     bar.scaleX = e.bytesLoaded/e.bytesTotal;

     trace(e.bytesLoaded/e.bytesTotal)

    }

    function addSound(e:Event):void

    {

     channel = sound.play();

    }

    function changeV(e:Event):void

    {

     bar2.scaleX = channel.position/sound.length ;

     trace(channel.position/sound.length);

    }

                                                                          控制声音和声像

    import flash.media.Sound;

    import flash.media.SoundTransform;

    import flash.media.SoundChannel;

    import flash.net.URLRequest;

    import flash.events.Event;

    var snd:Sound = new Sound(new URLRequest("1.mp3"));

    var trans:SoundTransform = new SoundTransform(0.6,-1);

    var channel:SoundChannel = snd.play(0,1,trans);

    var hd:Number = 0;

    addEventListener(Event.ENTER_FRAME,aa)

    function aa(e:Event):void

    {  

      hd+=0.1;

      trans = new SoundTransform(1,Math.sin(hd));

      channel.soundTransform = trans;  

      trace(hd);

    }

                                                                                       修改MP3的声音

    import flash.media.Sound;

    import flash.net.URLRequest;

    import flash.events.Event;

    import flash.events.SampleDataEvent;

    import flash.utils.ByteArray;

    var mysound:Sound = new Sound();

    var sourceSnd:Sound = new Sound();

    var url:URLRequest =new URLRequest("1.mp3");

    sourceSnd.load(url);

    sourceSnd.addEventListener(Event.COMPLETE,loaded);

    function loaded(e:Event):void

    {  

    mysound.addEventListener(SampleDataEvent.SAMPLE_DATA,processSound);

     mysound.play();

    }

    function processSound(e:SampleDataEvent):void

    {

            var bytes:ByteArray = new ByteArray();

            sourceSnd.extract(bytes,8192);  

           e.data.writeBytes(upOctve(bytes));

    }

    function upOctve(bytes:ByteArray):ByteArray

    {

        var returnBytes:ByteArray = new ByteArray();

        bytes.position = 0;

        while(bytes.bytesAvailable > 0)

        {     

          returnBytes.writeFloat(bytes.readFloat());   

          returnBytes.writeFloat(bytes.readFloat());

               if (bytes.bytesAvailable > 0)     

             {        

                bytes.position += 8;   

             }   

        }  

       return returnBytes;

    }

                                               

  • 相关阅读:
    微信公众号图片抓取
    ArcGIS Pro SDK开发从别的收集
    ARCGIS Pro试用申请教程以及登录页面脚本错误解决办法
    ArcMap python IndentationError: unexpected indent 莫名的错误解决
    ArcGIS Python更新顺序2种方法
    ArcGIS三维模型
    三维文件格式知多少 | abc、glTF、fbx、obj、dae、stl、3ds
    ArcGIS Pro创建点场景图层包(CreatePointSceneLayerPackage)
    What is the difference between SqlCommand.CommandTimeout and SqlConnection.ConnectionTimeout?
    Reference Microsoft.SqlServer.Smo.dll
  • 原文地址:https://www.cnblogs.com/klh5211314/p/2763367.html
Copyright © 2011-2022 走看看