这一节讲述如何使用Microphone对象,包括怎么减少麦克风的回音。
获取麦克风
来自flashcomguru forums的检测麦克风函数:
或者使用下面的更简单的函数:
避免回音
如果你使用外置的话筒,因为会有较大的增益,就不可避免的遇到回音的问题。
为了尽量降低话筒的回音,FlashCom Server提供了回音抑制功能。要使用这一功能,可以通过下面的方法:
这样就可以保持较好的语音效果,而不会从话筒传递过多的的回音。但尽管如此,仍然会有部分的回音无法消除,下面是一些好的建议:
1. 适当调低你的话筒音量
2. 让话筒远离你的音箱
3. 及时查找你的设备故障
4. 如果可以尽量使用戴在头上的耳机或听筒
保持Microphone始终打开
为了节约带宽,FlashCom server默认会关闭Microphone对象当它不再使用的时候。但是,有时候你可能需要保持Microphone保持始终打开(例如为了保证没有任何延迟),你可以使用下面的方法:
音量调节
Flashcomguru上提供了如何调节音量的方法:
获取麦克风
1 : Microphone.get([index]);
2 : //一般如果只有一个麦克风的话,可以用Microphone.get()
2 : //一般如果只有一个麦克风的话,可以用Microphone.get()
来自flashcomguru forums的检测麦克风函数:
01 :
function checkforMic() {
02 : micArray = Microphone.names;;
03 : if (micArray.length >= 1){
04 : temp_mic = Microphone.get();
05 : if(temp_mic == -1)
06 : trace( '--- mic is detected but its busy' );
07 : else
08 : trace( '--- mic detected' );
09 : delete temp_mic;
10 : } else if (micArray.length == 0) {
11 : trace( '--- no Mic detected' );
12 : }
13 : }
14 :
02 : micArray = Microphone.names;;
03 : if (micArray.length >= 1){
04 : temp_mic = Microphone.get();
05 : if(temp_mic == -1)
06 : trace( '--- mic is detected but its busy' );
07 : else
08 : trace( '--- mic detected' );
09 : delete temp_mic;
10 : } else if (micArray.length == 0) {
11 : trace( '--- no Mic detected' );
12 : }
13 : }
14 :
或者使用下面的更简单的函数:
01 :
function checkForMic(){
02 : return Microphone.names.length;
03 : }
04 :
05 : // trace ('User have a Mic? -> '+checkForMic());
06 :
07 : function isMicBusy(){
08 : if(arguments.length) return Microphone.get(arguments[0]) == -1;
09 : return Microphone.get() == -1;
10 : }
11 : // trace ('Is user's Mic busy? -> '+isMicBusy());
02 : return Microphone.names.length;
03 : }
04 :
05 : // trace ('User have a Mic? -> '+checkForMic());
06 :
07 : function isMicBusy(){
08 : if(arguments.length) return Microphone.get(arguments[0]) == -1;
09 : return Microphone.get() == -1;
10 : }
11 : // trace ('Is user's Mic busy? -> '+isMicBusy());
避免回音
如果你使用外置的话筒,因为会有较大的增益,就不可避免的遇到回音的问题。
为了尽量降低话筒的回音,FlashCom Server提供了回音抑制功能。要使用这一功能,可以通过下面的方法:
- myMicrophone.useEchoSuppression(true);
这样就可以保持较好的语音效果,而不会从话筒传递过多的的回音。但尽管如此,仍然会有部分的回音无法消除,下面是一些好的建议:
1. 适当调低你的话筒音量
2. 让话筒远离你的音箱
3. 及时查找你的设备故障
4. 如果可以尽量使用戴在头上的耳机或听筒
保持Microphone始终打开
为了节约带宽,FlashCom server默认会关闭Microphone对象当它不再使用的时候。但是,有时候你可能需要保持Microphone保持始终打开(例如为了保证没有任何延迟),你可以使用下面的方法:
- my_mic.setSilenceLevel(0)
音量调节
Flashcomguru上提供了如何调节音量的方法:
1 :
//Attach your netstream audio to a movielcip:
2 : movieclip_mc.attachAudio(yournetStream);
3 : // create a sound object
4 : my_snd = new Sound(movieclip_mc);
5 : // to adjust the volume
6 : my_snd.setVolume(50);
2 : movieclip_mc.attachAudio(yournetStream);
3 : // create a sound object
4 : my_snd = new Sound(movieclip_mc);
5 : // to adjust the volume
6 : my_snd.setVolume(50);