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);

                }

            }

        }



    }

    

}

 

你可能感兴趣的:(Activity)