Flex显示麦克风当前音量

本文介绍了一种使用Flex动态显示麦克风当前音量的方法。通过获取麦克风实例并监听其活动事件来实时更新音量显示。代码实现了音量级别的图形化呈现,帮助开发者更好地理解声音输入状态。

Flex动态显示麦克风当前音量

效果:

  

代码:

<?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="createMic()">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
        <fx:Script>
            <![CDATA[
                import flash.media.Microphone;                
                import flash.events.ActivityEvent;                
                import flash.events.Event;                
                import flash.events.StatusEvent;                
                public var mic:Microphone;
                public function createMic():void                    
                {                    
                    mic = Microphone.getMicrophone();                    
                    mic.setLoopBack(true);                    
                    mic.addEventListener(ActivityEvent.ACTIVITY, activity);                    
                    mic.addEventListener(StatusEvent.STATUS, status);                    
                    mic.addEventListener(Event.ACTIVATE, active);                    
                }
                
                private function active(event:Event):void                    
                {                    
                    trace(' active ');                    
                }
                
                private function status(event:StatusEvent):void                    
                {                    
                    trace("status");                    
                }
                
                private function activity(event:ActivityEvent):void                    
                {
                    trace("active ");                    
                    addEventListener(Event.ENTER_FRAME, showMicLevel);                    
                }
                
                private function showMicLevel(event:Event):void                    
                {                    
                    trace(mic.gain+" "+mic.activityLevel+" "+mic.silenceLevel+                        
                        " "+mic.rate);                    
                    level.graphics.clear();                    
                    level.graphics.beginFill(0xccccff, 1);
                    level.graphics.drawRect(0, 0, (mic.activityLevel * 30),            100);                    
                    level.graphics.endFill();                    
                }
            ]]>
        </fx:Script>        
        <mx:Canvas width="300" height="50" id="level"/>    
</s:Application>

 

转载于:https://www.cnblogs.com/ustcyc/p/3628677.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值