15.11.获得声音的音量

问题
我想知道正在播放的声音的音量是多少
解决办法
通过SoundChannel.leftPeak and 和SoundChannel.rightPeak 属性
讨论
任何声音,当在播放时产生强或弱的声波,我们称之为振幅,ActionScript 3.0 可获得一个立体声的左右声道的振幅,分别为SoundChannel的leftPeak和rightPeak属性。

它们的值范围是0.0到1.0,1.0表示最大的音量,具体的控制是通过SoundTransorm对象(看第15.14章).。

下面的例子创建两个矩形条用来显示两个声道的振幅:
+展开
-ActionScript
package {
import flash.display.Sprite;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.events.Event;
public class SoundLevels extends Sprite {
private var _sound:Sound;
private var _channel:SoundChannel;
public function SoundLevels( ) {
addEventListener(Event.ENTER_FRAME, onEnterFrame);
_sound = new Sound(new URLRequest("song.mp3"));
_channel = _sound.play( );
}
public function onEnterFrame(event:Event):void
{
var leftLevel:Number = _channel.leftPeak * 100;
var rightLevel:Number = _channel.rightPeak * 100;
graphics.clear( );
graphics.beginFill(0xcccccc);
graphics.drawRect(10, 10, leftLevel, 10);
graphics.endFill( );
graphics.beginFill(0xcccccc);
graphics.drawRect(10, 25, rightLevel, 10);
graphics.endFill( );
}
}
}

加支付宝好友偷能量挖...


评论(0)网络
阅读(100)喜欢(0)flash/flex/fcs/AIR