民浩

 

as3 获取MicrophoneExample的activityLevel值而不产生本地回声(麦克风的声音不传送到本地扬声器)解决方法

最近在做一个直播的项目,里面需要用到用as程序发布音视频。发布音频的时候需要看到麦克风音量输入的动画,因此用activityLevel属性做了个动画,但是发现本地音响能听到自己麦克风的声音,研究了许久终于找到了解决办法,解决办法如以下代码:

package  {
    import flash.display.Sprite;
    import flash.media.Microphone;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.NetStatusEvent;
    
    public class MicrophoneExample extends Sprite
    {
        
        private var _mic:Microphone;
        private var _timer:Timer;
        private var _ncon:NetConnection;
        private var _ns:NetStream;
        
        public function MicrophoneExample() 
        {
            //获取麦克风对象
            _mic = Microphone.getMicrophone();
            if(_mic != null)
            {
                _mic.setLoopBack(false);//设置此属性为true是为了获取麦克风的音量(activityLevel),activityLevel属性一般用来制作检测麦克风的动画。
            }
            //时刻输出麦克风音量计时器
            _timer = new Timer(100);
            _timer.addEventListener(TimerEvent.TIMER, timerHandler);
            _timer.start();
            //创建空连接为了解决本地能听到自己麦克风的声音
            _ncon = new NetConnection();
            _ncon.client = this;
            _ncon.addEventListener(NetStatusEvent.NET_STATUS, nconStatusHandler);
            _ncon.connect(null);
        }
        
        private function timerHandler(e:TimerEvent):void
        {
            if(_mic != null)
            {
                trace("当前麦克风音量:" + _mic.activityLevel);
            }
        }
        
        private function nconStatusHandler(e:NetStatusEvent):void
        {
            if(e.info.code == "NetConnection.Connect.Success")
            {
                _ns = new NetStream(_ncon);
                var mic:Microphone = Microphone.getMicrophone();
                if(mic != null)
                {
                    mic.setLoopBack(false);
                    _ns.attachAudio(mic);
                }
            }
        }

    }
    
}

 

posted on 2013-04-17 11:58  民浩  阅读(606)  评论(0编辑  收藏  举报

导航