flex4 中获取Microphone,抑制回声和使用Speex编码音频的方法
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编码音频的方法相关推荐
- php 修改文件访问时间,PHP中获取文件创建日期、修改日期、访问时间的方法
php获取文件创建时间.修改时间常用代码filemtime ( string filename ) 返回文件上次被修改的时间,出错时返回 FALSE.时间以 Unix 时间戳的方式返回,可用于 dat ...
- go语言中获取本机sid、mac地址和cpuid的方法(windows系统下有效)
在平常工作中可能会遇到需要获取本机mac地址或cpuid的场景,综合网上的办法,亲自试验总结如下: 1.如果只是要查本机sid地址,则很简单,直接在cmd命令窗口中输入命令: whoami /user ...
- mysql 自增长id string_Mysql中获取刚插入的自增长id的三种方法归纳
我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的. 但在多线程情况下,就不行了. 下面 ...
- PHP中获取的时间与本地时间不一致时的解决方法
在PHP中使用"date(Y/n/d H:i)"获取时间和本地的真实时间不同的原因可能是: 1.没有修改php.ini的配置文件中的默认时区为当前的时区位置 ...
- java中怎么找类的路径_Java中获取类加载路径和项目根路径的5种方法
public class MyUrlDemo { public static void main(String[] args) { MyUrlDemo muDemo = new MyUrlDemo() ...
- 使用JavaScript在下拉列表中获取选定的值
如何使用JavaScript从下拉列表中获取选定的值? 我尝试了下面的方法,但是它们都返回选择的索引而不是值: var as = document.form1.ddlViewBy.value; var ...
- 自动装配——@Autowired 构造器,参数,方法,属性都是从容器中获取参数组件的值||自定义组件想要使用Spring容器底层的一些组件 ApplicationContext,BeanFactory
@Autowired:构造器,参数,方法,属性:都是从容器中获取参数组件的值 * 1).[标注在方法位置]:@Bean+方法参数:参数从容器中获取;默认不写@Autowired效果是一样的:都能自动装 ...
- python 获取唯一值_从Python列表中获取唯一值
python 获取唯一值 In this article, we will be understanding 3 ways to get unique values from a Python lis ...
- Qt信号槽之槽函数中获取发送信号对象——sender()
QObject::sender() 我们如何在槽函数中获取到信号的发送对象呢,使用sender()方法即可获取.但是使用此方法我们需要注意几点: QObject *QObject::sender() ...
最新文章
- 如何在组件模板中选择元素?
- 【Linux】一步一步学Linux——ipcrm命令(142)
- microsoft project 出现不能保存为xls文件时可以按照如下方法解决
- MySQL str_to_date()函数
- C语言入门基础——Brute-Force算法
- 【原创】RPM安装软件时解决依赖性问题(自动解决依赖型)
- 数学之美--关于图论引申出来的爬虫构想
- ブランド (brand) 品牌,商标
- Python中新式类和经典类的区别,钻石继承
- 180908每日一句
- 用友商贸宝问题解答一
- h264解码保存为yuv格式
- 离散数学学习心得(一)逻辑和证明
- web前端期末大作业 基于HTML+CSS家乡主题毕业设计源码 (1)
- matlab从无到有系列(九):Simulink基础仿真详解(全网最全,从入门到放弃)
- unity3d + lua + 斗地主 系列 (2) 创建扑克规则
- 电脑网络连接有个感叹号,连不上网
- linux a卡rpm安装方法,A卡安装成功
- 一杯茶一包烟,一行代码码一天!用Python分析程序员抽的烟!
- 摄像头每路视频每天到底产生多少数据?