WEB开发网
开发学院图形图像Flash Mp3 Player 阅读

Mp3 Player

 2009-05-30 12:07:53 来源:WEB开发网   
核心提示: volume_bar.addEventListener(Event.CHANGE, adjustVolume); 然后创建adjustVolume 方法: private function adjustVolume(evt:Event):void { soundChannel.sound

        volume_bar.addEventListener(Event.CHANGE, adjustVolume);

然后创建adjustVolume 方法:

        private function adjustVolume(evt:Event):void {
             soundChannel.soundTransform = new SoundTransform(evt.target.value);
        }

同时还需要导入import flash.media.SoundTransform。好了,音量控制也完成了,下面来看如何输出声音波形。

五、输出声音波形

读取声音波形使用 SoundMixer 类的静态方法computeSpectrum()。下面看一下帮助中对于该方法的描述:

computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void

[static] 获取当前声音波形的快照,并将其放在指定的 ByteArray 对象中。

此方法的第一个参数是一个 ByteArray 字节数组,它会将波形写入到 ByteArray 中。

字节数组中的值为标准浮点值(范围为 -1.0 到 1.0)格式。刚好,用得到的 -1.0 ~ 1.0 直接就可以赋值给声波条 SoundBar(我们在界面设计时绘制的一个影片剪辑)对象的 scaleY 属性了。第三个参数的值可以改变采样率,默认为 0,按 44.1 KHz 对数据进行采样。

computeSpectrum() 方法填充的 ByteArray 大小固定为512 个浮点值。其中前 256 个值表示左声道,后 256 个值表示右声道。

既然有 512 个浮点值,为了简单起见,我们就用 512 个 SoundBar 来显示它们。首先加入一些成员变量:

    // 保存 512 个声音波形的快照
    private var bytes:ByteArray = new ByteArray();
    // SoundBar 的个数
    private var barNum:uint = 512;
    // 保存所有 SoundBar 对象的引用
    private var soundBars:Array = new Array();

下面在 init() 函数中将声音条初始化,并添加 onEnterFrame 侦听:
    // 每个 SoundBar 的宽度:舞台宽度 / SoundBar 的个数
    var barWidth:Number = stage.stageWidth / barNum;
  
    // 初始化 SoundBar,放入舞台并加入数组
    for (var i:uint = 0; i < barNum; i++) {
        var soundBar:SoundBar = new SoundBar();
        soundBar.width = barWidth;
        soundBar.x = i * barWidth;
        soundBar.y = stage.stageHeight;
        addChild(soundBar);
        soundBars.push(soundBar);
    }
  
    // 注册用来处理波形的函数
    addEventListener(Event.ENTER_FRAME, onEnterFrame);

最后是 onEnterFrame 函数:
    private function onEnterFrame(evt:Event):void {
        SoundMixer.computeSpectrum(bytes, false, 0);
        for (var i:uint = 0; i < barNum; i++) {
            soundBars[i].scaleY = bytes.readFloat();
        }
    }

上一页  1 2 3 4 5 6  下一页

Tags:Mp Player

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接