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);
                    }
                }
            }
    
        }
        
    }
  • 相关阅读:
    UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
    Codeforces 482E ELCA (LCT)
    Codeforces 798D Mike and distribution (构造)
    AtCoder AGC017C Snuke and Spells
    HDU 6089 Rikka with Terrorist (线段树)
    HDU 6136 Death Podracing (堆)
    AtCoder AGC032D Rotation Sort (DP)
    jenkins+python+kubectl实现批量更新k8s镜像
    Linux 下载最新kubectl版本的命令:
    jenkins X 和k8s CI/CD
  • 原文地址:https://www.cnblogs.com/chenhaib/p/3025912.html
Copyright © 2011-2022 走看看