• 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);
                    }
                }
            }
    
        }
        
    }
  • 相关阅读:
    Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
    ASP.NET Core Docker部署
    将.NET Core部署在Docker
    linux 常用命令
    Wpf(Storyboard)动画简单实例
    uwp之图片旋转动画实现
    2011年度十大杰出IT博客获奖感言
    将BT下载对抗到底
    P3271 [JLOI2016]方 容斥+数学
    GCD is Funny
  • 原文地址:https://www.cnblogs.com/chenhaib/p/3025912.html
Copyright © 2020-2023  润新知