2013年9月3日 星期二

[Actionscript 3.0] 麥克風互動教學

利用Flash來開發應用程式或互動裝置時,操作的方式可以鍵盤、滑鼠、Touch、Webcam、麥克風等,因而在這篇文章中,我簡單的介紹一下如透過Actionscript 3.0的麥克風類別以達到聲音的互動效果。
 
在此主要是使用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);
        }
    }
}

沒有留言:

張貼留言