zoukankan      html  css  js  c++  java
  • 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);
                    }
                }
            }
    
        }
        
    }
  • 相关阅读:
    北京清北 综合强化班 Day1
    Noip2015 提高组 Day1
    Noip2016 提高组 Day2 T1 组合数问题
    2017.9.23 NOIP2017 金秋杯系列模拟赛 day1 T1
    [51NOD1103] N的倍数(鸽笼原理)
    [51NOD1420] 数袋鼠好有趣(贪心)
    [CF808A] Lucky Year(规律)
    [CF808B] Average Sleep Time([强行]树状数组,数学)
    [CF808C] Tea Party(贪心)
    [CF808D] Array Division(暴力,枚举)
  • 原文地址:https://www.cnblogs.com/chenhaib/p/3025912.html
Copyright © 2011-2022 走看看