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 にシステムのカメラおよびマイクへのアクセスを許可するかどうかを指定することができます。このダイアログの「許可」または「拒否」ボタンをクリックすると、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
にそれぞれ設定されます。ただし、
muted
プロパティは、StatusEvent が送出されるまで Microphone インスタンスに設定されないので、
Microphone.muted
プロパティを確認するには
StatusEvent.STATUS
イベントが送出されるまで待機する必要があります。
Flash Player で設定ダイアログを表示するには、ダイアログの大きさに合わせてアプリケーションウィンドウのサイズを拡大する必要があります(少なくとも 215 x 138 ピクセル)。この操作を行わないと、アクセスが自動的に拒否されます。
AIR アプリケーションサンドボックスで実行されるコンテンツでは、マイクにアクセスするためにユーザーの許可は不要です。したがって、マイクのミュートおよびミュート解除の status イベントは送出されません。アプリケーションサンドボックスの外部の AIR で実行されるコンテンツではユーザーの許可が必要なので、これらの status イベントを送出できます。