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>
复制代码

 

posted @   悉路  阅读(749)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示