Microphone 類別並沒有建構函式方法。但是,您可以使用靜態的
Microphone.getMicrophone()
方法來取得新的 Microphone 實體,如下所示:
var mic:Microphone = Microphone.getMicrophone();
呼叫
Microphone.getMicrophone()
方法並且不使用參數,將會傳回在使用者系統上發現的第一個聲音輸入裝置。
系統可以連接一個以上的聲音輸入裝置。您的應用程式可以使用
Microphone.names
屬性,取得所有可用聲音輸入裝置的名稱陣列。然後,可以呼叫
Microphone.getMicrophone()
方法並搭配
index
參數,該參數符合陣列中裝置名稱的索引值。
系統可能沒有連接麥克風或其它聲音輸入裝置。您可以使用
Microphone.names
屬性或
Microphone.getMicrophone()
方法,檢查使用者是否安裝了聲音輸入裝置。如果使用者沒有安裝聲音輸入裝置,則
names
陣列的長度為零,而且
getMicrophone()
方法會傳回
null
值。
當您的應用程式呼叫
Microphone.getMicrophone()
方法時,Flash Player 會顯示「Flash Player 設定」對話方塊,提示使用者允許或拒絕 Flash Player 存取系統上的攝影機與麥克風。當使用者按一下此對話方塊中的「允許」或「拒絕」按鈕之後,就會傳送 StatusEvent。StatusEvent 實體的
code
屬性會指出允許或拒絕存取麥克風,如此範例所示:
import flash.media.Microphone;
var mic:Microphone = Microphone.getMicrophone();
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
function onMicStatus(event:StatusEvent):void
{
if (event.code == "Microphone.Unmuted")
{
trace("Microphone access was allowed.");
}
else if (event.code == "Microphone.Muted")
{
trace("Microphone access was denied.");
}
}
如果允許存取,
StatusEvent.code
屬性將包含「Microphone.Unmuted」,如果拒絕存取,則包含「Microphone.Muted」。
當使用者允許或拒絕存取麥克風時,
Microphone.muted
屬性將會分別設定為
true
或
false
。不過,在傳送 StatusEvent 之前,並不會設定 Microphone 實體的
muted
屬性,因此您的應用程式也應該等到傳送
StatusEvent.STATUS
事件之後,再檢查
Microphone.muted
屬性。
為了讓 Flash Player 顯示設定對話方塊,應用程式視窗必須夠大才能顯示它 (至少 215 * 138 像素)。否則,會自動拒絕存取。
在 AIR 應用程式安全執行程序中執行的內容,不需要使用者權限,即可存取麥克風。因此,永遠不會傳送麥克風的靜音和取消靜音的狀態事件。在應用程式安全執行程序之外執行的 AIR 內容,確實需要使用者的權限,因此可能會傳送這些狀態事件。