flex4 中获取Microphone,抑制回声和使用Speex编码音频的方法,该方法经过本人测试可用。

一、如果你不关心请直接把代码复制,如果想要了解细节的请继续往下看

private function getMicrophone(codec:String):Microphone {var mic:Microphone = null;mic = Microphone.getEnhancedMicrophone();if (mic) {var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;options.autoGain = false;options.echoPath = 128;options.nonLinearProcessing = true;microphone.enhancedOptions=options;mic.setUseEchoSuppression(true);} else {mic = Microphone.getMicrophone();}if (mic == null) {trace("No microphone! <o>");} else {mic.addEventListener(StatusEvent.STATUS, onMicStatusEvent);mic.setLoopBack(false);mic.setSilenceLevel(0, 20000);mic.gain = 60;if (codec == "SPEEX") {mic.encodeQuality = 8;mic.codec = SoundCodec.SPEEX;mic.framesPerPacket = 2;mic.rate = 16;trace("Using SPEEX wideband codec");} else {mic.codec = SoundCodec.NELLYMOSER;mic.rate = 8;trace("Using Nellymoser codec");}}return mic;
}protected function onMicStatusEvent(event:StatusEvent):void {trace("New microphone status event");//trace(ObjectUtil.toString(event));switch (event.code) {case "Microphone.Muted":break;case "Microphone.Unmuted":break;default:break;}
}

二、针对上面的参数进行说明.

1、Microphone提供了 getEnhancedMicrophone 方法(最好是升级到flex4.6以上,flex3肯定是没有这个api的),能够返回一个“增强麦克风",ADOBE声称可以用来创建不用头戴式耳机麦克风的音视频应用程序,用这个效果比之前的Microphone.getMicrophone()都要很多改善,包括获取音频和音频编码,还有抑制回声等.

2、mic.setLoopBack(false); 设置为false 就是禁止将麦克风捕获的音频传送到本地扬声器.如果不设置为false,你会听到自己说话的声音的。默认值是true。

3、mic.setUseEchoSuppression(true);指定是否使用音频编解码器的回音抑制功能。除非用户已经在 Flash Player 的“麦克风设置”面板中选择了“降低回音”,否则默认值为false

三、参考资料文献,

1、Adobe® Flex® 4 Beta 语言参考  http://www.fising.cn/docs/AS3_Reference/flash/media/Microphone.html

2、参照bigbluebutton远程教育系统的源码 https://github.com/bigbluebutton/bigbluebutton/blob/master/clients/flash/common-library/src/org/bigbluebutton/lib/voice/services/VoiceStreamManager.as

3、 Flex客户端设置speex编码时Red5对音频数据的处理以及将speex解码

flex4 中获取Microphone,抑制回声和使用Speex编码音频的方法相关推荐

  1. php 修改文件访问时间,PHP中获取文件创建日期、修改日期、访问时间的方法

    php获取文件创建时间.修改时间常用代码filemtime ( string filename ) 返回文件上次被修改的时间,出错时返回 FALSE.时间以 Unix 时间戳的方式返回,可用于 dat ...

  2. go语言中获取本机sid、mac地址和cpuid的方法(windows系统下有效)

    在平常工作中可能会遇到需要获取本机mac地址或cpuid的场景,综合网上的办法,亲自试验总结如下: 1.如果只是要查本机sid地址,则很简单,直接在cmd命令窗口中输入命令: whoami /user ...

  3. mysql 自增长id string_Mysql中获取刚插入的自增长id的三种方法归纳

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的. 但在多线程情况下,就不行了. 下面 ...

  4. PHP中获取的时间与本地时间不一致时的解决方法

    在PHP中使用"date(Y/n/d H:i)"获取时间和本地的真实时间不同的原因可能是:      1.没有修改php.ini的配置文件中的默认时区为当前的时区位置        ...

  5. java中怎么找类的路径_Java中获取类加载路径和项目根路径的5种方法

    public class MyUrlDemo { public static void main(String[] args) { MyUrlDemo muDemo = new MyUrlDemo() ...

  6. 使用JavaScript在下拉列表中获取选定的值

    如何使用JavaScript从下拉列表中获取选定的值? 我尝试了下面的方法,但是它们都返回选择的索引而不是值: var as = document.form1.ddlViewBy.value; var ...

  7. 自动装配——@Autowired 构造器,参数,方法,属性都是从容器中获取参数组件的值||自定义组件想要使用Spring容器底层的一些组件 ApplicationContext,BeanFactory

    @Autowired:构造器,参数,方法,属性:都是从容器中获取参数组件的值 * 1).[标注在方法位置]:@Bean+方法参数:参数从容器中获取;默认不写@Autowired效果是一样的:都能自动装 ...

  8. python 获取唯一值_从Python列表中获取唯一值

    python 获取唯一值 In this article, we will be understanding 3 ways to get unique values from a Python lis ...

  9. Qt信号槽之槽函数中获取发送信号对象——sender()

    QObject::sender() 我们如何在槽函数中获取到信号的发送对象呢,使用sender()方法即可获取.但是使用此方法我们需要注意几点: QObject *QObject::sender() ...

最新文章

  1. 如何在组件模板中选择元素?
  2. 【Linux】一步一步学Linux——ipcrm命令(142)
  3. microsoft project 出现不能保存为xls文件时可以按照如下方法解决
  4. MySQL str_to_date()函数
  5. C语言入门基础——Brute-Force算法
  6. 【原创】RPM安装软件时解决依赖性问题(自动解决依赖型)
  7. 数学之美--关于图论引申出来的爬虫构想
  8. ブランド (brand) 品牌,商标
  9. Python中新式类和经典类的区别,钻石继承
  10. 180908每日一句
  11. 用友商贸宝问题解答一
  12. h264解码保存为yuv格式
  13. 离散数学学习心得(一)逻辑和证明
  14. web前端期末大作业 基于HTML+CSS家乡主题毕业设计源码 (1)
  15. matlab从无到有系列(九):Simulink基础仿真详解(全网最全,从入门到放弃)
  16. unity3d + lua + 斗地主 系列 (2) 创建扑克规则
  17. 电脑网络连接有个感叹号,连不上网
  18. linux a卡rpm安装方法,A卡安装成功
  19. 一杯茶一包烟,一行代码码一天!用Python分析程序员抽的烟!
  20. 摄像头每路视频每天到底产生多少数据?

热门文章

  1. 如何快速准备面试中的算法,获得 Offer?
  2. 法坤老师:法坤电子书搜索系统搭建
  3. CSS网页布局之传统解决方案与Flex大法
  4. Flutter 入门指北(Part 2)之基础部件
  5. Visual Studio 2022 正式版下载教程
  6. 各种神奇网站集合(持更)
  7. 无法在windows资源管理器中查看此FTP站点
  8. 第5章分数的位置及标准化分布
  9. Visual GDB不能在线调试,出现Received a SIGTRAP:Trace/breakpoint trap
  10. 《FFmpeg Basics》中文版-11-格式之间转换