[AS3]将麦克风音频传送到本地扬声器
将麦克风音频传送到本地扬声器
可以使用参数值 true 调用 Microphone.setLoopback() 方法,以将来自麦克风的音频输入传送到本地系统扬声器。
如果将来自本地麦克风的声音传送到本地扬声器,则会存在创建音频回馈循环的风险,这可能会导致非常大的振鸣声,并且可能会损坏声音硬件。使用参数值 true 调用 Microphone.setUseEchoSuppression() 方法可降低发生音频回馈的风险,但不会完全消除该风险。Adobe 建议您始终在调用 Microphone.setLoopback(true) 之前调用 Microphone.setUseEchoSuppression(true),除非您确信用户使用耳机来播放声音,或者使用除扬声器以外的某种设备。
以下代码说明了如何将来自本地麦克风的音频传送到本地系统扬声器:
- var mic:Microphone = Microphone.getMicrophone();
- mic.setUseEchoSuppression(true);
- mic.setLoopBack(true);
更改麦克风音频
应用程序可以使用两种方法更改来自麦克风的音频数据。第一,它可以更改输入声音的增益,这会有效地将输入值乘以指定的数值以创建更大或更小的声音。Microphone.gain 属性接受介于 0 和 100 之间的数值(含 0 和 100)。值 50 相当于乘数 1,它指定正常音量。值 0 相当于乘数 0,它可有效地将输入音频静音。大于 50 的值指定的音量高于正常音量。
应用程序也可以更改输入音频的采样率。较高的采样率可提高声音品质,但它们也会创建更密集的数据流(使用更多的资源进行传输和存储)。Microphone.rate 属性表示以千赫 (kHz) 为单位测量的音频采样率。默认采样率是 8 kHz。如果麦克风支持较高的采样率,您可以将 Microphone.rate 属性设置为高于 8 kHz 的值。例如,如果将 Microphone.rate 属性设置为值 11,则会将采样率设置为 11 kHz;如果将该属性设置为 22,则会将采样率设置为 22 kHz,依此类推。采样率取决于所选择的编解码器。如果使用的是 Nellymoser 编解码器,则可以指定 5、8、11、16、22 和 44 kHz 作为采样率。使用 Speex 编解码器(Flash Player 10 和 Adobe AIR 1.5 中开始提供)时,只能使用 16 kHz。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例