在此主要是使用setSilenceLevel()的方法設定聲音輸入的臨界值大小,搭配ActivityEvent.ACTIVITY的偵聽事件來作為臨界值的觸發,程式碼的範例如下:
package
{
import flash.display.Sprite;
import flash.media.Microphone;
import flash.events.ActivityEvent;
public class Microphone_Example extends Sprite
{
private var mic:Microphone;
public function Microphone_Example()
{
mic = Microphone.getMicrophone();
// 增強聲音輸入訊號
mic.gain = 50;
// 為使麥克風類別之activity level能被註冊需啟用Loop back這個method
mic.setLoopBack(true);
// 設定聲音觸發的臨界值, 第一個屬性為臨界值大小第二個屬性是當音源小於臨界值後多少timeout後
// 偵聽事件即結束 (event.activating = false)
mic.setSilenceLevel(50, 500);
mic.addEventListener(ActivityEvent.ACTIVITY, this.onMicActivity);
}
private function onMicActivity(event:ActivityEvent):void
{
trace("activating=" + event.activating + ", activityLevel=" + mic.activityLevel);
}
}
}
沒有留言:
張貼留言