| パッケージ | flash.media |
| クラス | public final class Microphone |
| 継承 | Microphone EventDispatcher Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ビデオのキャプチャについて詳しくは、Camera クラスのトピックを参照してください。
重要 : ユーザーがマイクへのアクセスを許可するか拒否するかを選択できるように、Flash Player で [プライバシー] ダイアログボックスが表示されます。アプリケーションウィンドウのサイズは必ず 215 × 138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。
Microphone オブジェクトを作成または参照するには、Microphone.getMicrophone() メソッドを使用します。
注意 : アプリケーションサンドボックス外のコンテンツでは、ユーザーがマイクへのアクセスを許可するかどうかを選択できるプライバシーダイアログボックスが表示されます。 このダイアログボックスには、最小限のアプリケーションウィンドウサイズ(215 × 138 ピクセル以上)が必要です。アプリケーションサンドボックス内の Adobe AIR コンテンツでは、アクセスが許可され、ダイアログボックスは表示されません。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| activityLevel : Number [読み取り専用]
マイクが検知している音量です。 | Microphone | ||
| codec : String
オーディオ圧縮に使用するコーデックです。 | Microphone | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
| encodeQuality : int
Speex コーデックを使用する場合の、エンコードされた音質です。 | Microphone | ||
| framesPerPacket : int
1 パケット(メッセージ)で送信される Speex 音声フレームの数です。 | Microphone | ||
| gain : Number
マイクによるサウンドのゲイン(増幅率)は、シグナルが転送前にマイクで増幅される量を表します。 | Microphone | ||
| index : int [読み取り専用]
マイクのインデックスです。これは、Microphone.names から返される配列のインデックスと同じです。 | Microphone | ||
| muted : Boolean [読み取り専用]
ユーザーがマイクへのアクセスを拒否している (true) か、許可している (false) かを指定します。 | Microphone | ||
| name : String [読み取り専用]
サウンドキャプチャハードウェアから返される現在のサウンドキャプチャデバイスの名前です。 | Microphone | ||
| names : Array [静的] [読み取り専用]
使用可能なすべてのサウンドキャプチャデバイスの名前を含むストリングの配列です。 | Microphone | ||
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| rate : int
マイクのサウンドキャプチャレート (kHz) です。 | Microphone | ||
| silenceLevel : Number [読み取り専用]
マイクを有効化したり、activity イベントを送出するために必要な音量です。 | Microphone | ||
| silenceTimeout : int [読み取り専用]
マイクがサウンド検知を停止してから activity イベントが送出されるまでの時間 (ミリ秒単位) です。 | Microphone | ||
| soundTransform : SoundTransform
loopback モードになっているとき、この microphone オブジェクトのサウンドを制御します。 | Microphone | ||
| useEchoSuppression : Boolean [読み取り専用]
エコー抑制が有効になっている場合は true、それ以外の場合は false に設定します。 | Microphone | ||
| メソッド | 定義元 | ||
|---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | |
![]() |
イベントをイベントフローに送出します。 | EventDispatcher | |
[静的]
オーディオをキャプチャする Microphone オブジェクトの参照を返します。 | Microphone | ||
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | |
マイクによってキャプチャされたオーディオをローカルスピーカーに転送します。 | Microphone | ||
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
サウンドと見なす最小入力レベルと、実際に無音状態が始まったと見なすまでの無音時間の長さを設定します。後者は省略可能です。 | Microphone | ||
オーディオコーデックのエコー抑制機能を使用するかどうかを指定します。 | Microphone | ||
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | [ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| マイクがセッションを開始または終了したときに送出されます。 | Microphone | |||
![]() | [ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| マイクがそのステータスをレポートしたときに送出されます。 | Microphone | |||
| activityLevel | プロパティ |
activityLevel:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクが検知している音量です。値の範囲は 0 (サウンドが検知されていない) ~ 100 (非常に大音量が検知されている) です。このプロパティ値に基づいて、Microphone.setSilenceLevel() メソッドに渡す適切な値を判断できます。
マイクを利用できる状態であっても、Microphone.getMicrophone() がまだ呼び出されていないためにまだ使用されていない場合は、このプロパティは -1 に設定されます。
public function get activityLevel():Number関連項目
| codec | プロパティ |
codec:String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
オーディオ圧縮に使用するコーデックです。デフォルトで使用されるコーデックは、Nellymoser コーデックです。列挙クラス SoundCodec は、codec プロパティに対して有効な各値を含みます。
public function get codec():String public function set codec(value:String):void関連項目
| encodeQuality | プロパティ |
encodeQuality:int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
Speex コーデックを使用する場合の、エンコードされた音質です。指定できる値は、0 ~ 10 です。デフォルト値は 6 です。次の表に示すとおり、値が大きいほど質は高くなりますが、必要な帯域幅も増えます。リストされたビットレートの値はネットのビットレートを表し、パケットのオーバーヘッドは含まれません。
| 質の値 | 必要なビットレート(1 秒あたりのキロビット数) |
|---|---|
| 0 | 3.95 |
| 1 | 5.75 |
| 2 | 7.75 |
| 3 | 9.80 |
| 4 | 12.8 |
| 5 | 16.8 |
| 6 | 20.6 |
| 7 | 23.8 |
| 8 | 27.8 |
| 9 | 34.2 |
| 10 | 42.2 |
public function get encodeQuality():int public function set encodeQuality(value:int):void関連項目
| framesPerPacket | プロパティ |
framesPerPacket:int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
1 パケット(メッセージ)で送信される Speex 音声フレームの数です。各フレームの長さは 20 ミリ秒です。デフォルト値は、1 パケットあたり 2 フレームです。
メッセージ内の Speex フレームが増えるほど、必要な帯域幅は減りますが、メッセージの送信が遅れます。Speex フレームが少ないほど、必要な帯域幅は増えますが、遅延が軽減されます。
public function get framesPerPacket():int public function set framesPerPacket(value:int):void| gain | プロパティ |
gain:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクによるサウンドのゲイン(増幅率)は、シグナルが転送前にマイクで増幅される量を表します。値 0 は 0 倍、つまりサウンドが送信されないことを示します。
この設定はステレオのボリュームつまみのようなものと考えることができます。0 は消音、50 は通常のボリューム、50 より小さい値は通常よりも低いボリューム、50 より大きい値は通常よりも大きいボリュームを表します。有効な値は 0 ~ 100 で、デフォルト値は 50 です。ユーザーは [Flash Player 設定] パネルの [マイク] を使用してこの値を変更できます。
public function get gain():Number public function set gain(value:Number):void関連項目
| index | プロパティ |
index:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクのインデックスです。これは、Microphone.names から返される配列のインデックスと同じです。
public function get index():int関連項目
| muted | プロパティ |
muted:Boolean [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ユーザーがマイクへのアクセスを拒否しているか (true)、許可しているか (false) を指定します。この値が変わると、status イベントが送出されます。詳細については、Microphone.getMicrophone()を参照してください。
public function get muted():Boolean関連項目
| name | プロパティ |
name:String [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
サウンドキャプチャハードウェアから返される現在のサウンドキャプチャデバイスの名前です。
public function get name():String関連項目
| names | プロパティ |
names:Array [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
使用可能なすべてのサウンドキャプチャデバイスの名前を含むストリングの配列です。この名前は、ユーザーに [Flash Player 設定] パネルの [プライバシー] を表示せずに返されます。この配列により、各サウンドキャプチャデバイスの 0 から始まるインデックスと、システム上の各サウンドキャプチャデバイスの数 (Microphone.names.length プロパティ) を調べることができます。詳細については、Array クラスのエントリを参照してください。
Microphone.names プロパティを呼び出すと、ハードウェアを広範囲にわたって調べる必要があり、配列を作成するまでに数秒間かかることがあります。ほとんどの場合は、デフォルトのマイクをそのまま使用できます。
メモ : 現在のマイクの名前を調べるには、name プロパティを使用します。
public static function get names():Array関連項目
| rate | プロパティ |
rate:int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクのサウンドキャプチャレート (kHz) です。許容される値は、使用するサウンドデバイスがサポートする 5、8、11、22、または 44 のいずれかです。
デフォルト値は 8 kHz ですが、サウンドキャプチャデバイスがこの値に対応している必要があります。対応していない場合、デフォルト値はそのサウンドキャプチャデバイスが対応している 8 kHz よりも高いレートのうち、8 kHz に最も近い値になります。通常は 11 kHz です。
public function get rate():int public function set rate(value:int):void| silenceLevel | プロパティ |
silenceLevel:Number [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクを有効化したり、activity イベントを送出するために必要な音量です。デフォルト値は 10 です。
public function get silenceLevel():Number関連項目
| silenceTimeout | プロパティ |
silenceTimeout:int [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクがサウンド検知を停止してから、activity イベントが送出されるまでの時間 (ミリ秒単位) です。デフォルト値は 2000 (2 秒) です。
この値を設定するには、Microphone.setSilenceLevel() メソッドを使用します。
public function get silenceTimeout():int関連項目
| soundTransform | プロパティ |
soundTransform:SoundTransform| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
loopback モードになっているとき、この microphone オブジェクトのサウンドを制御します。
public function get soundTransform():SoundTransform public function set soundTransform(value:SoundTransform):void| useEchoSuppression | プロパティ |
useEchoSuppression:Boolean [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
エコー抑制が有効になっている場合は true、それ以外の場合は false に設定します。Flash Player 設定パネルの [マイク] でユーザーが [エコーを減らす] を選択していない限り、デフォルト値は false です。
public function get useEchoSuppression():Boolean関連項目
| getMicrophone | () | メソッド |
public static function getMicrophone(index:int = -1):Microphone| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
オーディオをキャプチャする Microphone オブジェクトの参照を返します。オーディオのキャプチャを開始するには、Microphone オブジェクトを NetStream オブジェクトに接続する必要があります。NetStream.attachAudio() () のトピックを参照してください。
Microphone.get() を複数回呼び出すと、同じマイクが参照されます。このため、コードに mic1 = Microphone.get() という行と mic2 = Microphone.get() という行が含まれている場合、mic1 と mic2 はどちらも同じデフォルトのマイクを参照します。
デフォルトのマイクを取得するには、-1 を指定して getMicrophone() を呼び出す必要があります。パラメータを指定せずに getMicrophone() を呼び出すと、リスト内の最初のマイクが返されます。
現在の Microphone オブジェクトのインデックス値を取得するには、index プロパティを使用します。次に、Microphone クラスの他のメソッドにこの値を渡します。
通常は、index の値を渡さないでください。デフォルトのマイクへの参照を取得するには、単に Microphone.getMicrophone() メソッドを使用します。[マイク] パネルを使用することで、アプリケーションで使用するデフォルトのマイクをユーザーが指定できます。index で値を渡すと、ユーザーが使用するのとは異なるマイクが参照される可能性があります。index を使用できるのは、アプリケーションで 2 つのマイクから同時にオーディオをキャプチャする場合など、特殊な場合です。
SWF ファイルが Microphone.getMicrophone() メソッドから返されたオブジェクトにアクセスしようとすると(NetStream.attachAudio() を呼び出す場合など)、プライバシーダイアログボックスが表示されます。ユーザーは、そこでマイクへのアクセスを許可するか拒否するかを選択できます。ステージのサイズは必ず 215 × 138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。
ユーザーがこのダイアログボックスに応答すると、ユーザーの応答を示す status イベントが送出されます。Microphone.muted プロパティを確認して、ユーザーがマイクへのアクセスを許可したか、拒否したかを判別することもできます。
Microphone.getMicrophone() が null を返すのは、マイクが他のアプリケーションで使用されているか、そのシステムにマイクが取り付けられていないかのどちらかの場合です。マイクがインストールされているかどうかを調べるには、Microphones.names.length を使用します。Flash Player の [マイク] パネルを表示して、Microphone.getMicrophone で参照するマイクをユーザーが選択できるようにするには、Security.showSettings() () を使用します。
パラメータ
index:int (default = -1) — マイクのインデックス値です。
|
Microphone — オーディオをキャプチャする Microphone オブジェクトの参照です。
|
status: — マイクがそのステータスをレポートしたときに送出されます。code プロパティの値が "Microphone.Muted" である場合、SWF ファイルのマイクへのアクセスをユーザーが拒否しています。code プロパティの値が "Microphone.Unmuted" である場合、SWF ファイルのマイクへのアクセスをユーザーが許可しています。 |
関連項目
| setLoopBack | () | メソッド |
public function setLoopBack(state:Boolean = true):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクによってキャプチャされたオーディオをローカルスピーカーに転送します。
パラメータ
state:Boolean (default = true) |
| setSilenceLevel | () | メソッド |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
サウンドと見なす最小入力レベルと、実際に無音状態が始まったと見なすまでの無音時間の長さを設定します。後者は省略可能です。
silenceLevel に値 100 を渡します。こうすると、activity イベントが送出されることはありません。 Microphone.activityLevel を使用します。 アクティビティ検知とは、人が話していることをオーディオレベルに基づいて検知する機能のことです。誰も話していないときは、関連付けられているオーディオストリームを送信する必要がないので、帯域幅を節約できます。この情報を利用して、ユーザー (または他の誰か) が話していないことを視覚的なフィードバックとして示すこともできます。
サイレンス値はアクティビティ値に直接対応します。完全なサイレンスのアクティビティ値は 0 です。継続的な大音量 (現在のゲイン設定に基づく最大の音量) のアクティビティ値は 100 です。ゲイン (増幅率) を適切に調整すると、話していないときにはアクティビティ値がサイレンス値よりも小さくなります。話しているときには、アクティビティ値はサイレンス値よりも大きくなります。
このメソッドは Camera.setMotionLevel() に似ています。どちらのメソッドも、activity イベントの送出タイミングを指定するために使用します。ただし、パブリッシュするストリームに対する影響という点では、この 2 つのメソッドは大きく異なります。
Camera.setMotionLevel()はモーションを検知し、使用する帯域幅には影響しないように設計されています。ビデオストリームでモーションが検知されない間も、ビデオは送信されます。Microphone.setSilenceLevel()は帯域幅を最適化するように設計されています。オーディオストリームが無音と考えられる場合には、オーディオデータは送信されません。代わりに、無音状態が始まったことを示すメッセージが送信されます。 パラメータ
silenceLevel:Number — マイクを有効化したり、activity イベントを送出するために必要な音量です。使用可能な値の範囲は 0 ~ 100 です。
| |
timeout:int (default = -1) — アクティビティがない場合に、サウンドが停止したと Flash Player または Adobe AIR が判定し dispatch イベントを送出するまでの時間(ミリ秒単位)です。 デフォルト値は 2000(2 秒)です。(メモ : シグネチャで示されたデフォルト値(-1)は、2000 を使用することを Flash Player または Adobe AIR に伝える内部値です。)
|
関連項目
| setUseEchoSuppression | () | メソッド |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
オーディオコーデックのエコー抑制機能を使用するかどうかを指定します。Flash Player 設定パネルの [マイク] でユーザーが [エコーを減らす] を選択していない限り、デフォルト値は false です。
エコー抑制とは、スピーカーから出たサウンドが同じコンピュータのマイクによって拾われるオーディオフィードバックの影響を減らす機能のことです。これは、フィードバックを完全に除去するエコー除去機能とは異なります。
一般に、キャプチャするサウンドをヘッドセットではなく同じコンピュータのスピーカーで再生する場合には、エコー抑制機能を使用することが推奨されます。サウンド出力デバイスをユーザーが選択できるようにした SWF ファイルでは、ユーザーがスピーカーを選択し、マイクも使用する場合に Microphone.setUseEchoSuppression(true) を呼び出すことをお勧めします。
ユーザーは、Flash Player 設定パネルの [マイク] でこれらの設定を調整することもできます。
パラメータ
useEchoSuppression:Boolean — エコー抑制を使用するか (true) 使用しないか (false) を示すブール値です。
|
関連項目
| activity | イベント |
flash.events.ActivityEventflash.events.ActivityEvent.ACTIVITY| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクがセッションを開始または終了したときに送出されます。
activating プロパティを true に設定して、このイベントをトリガするために必要な音量を指定するか、activating プロパティを false に設定して、このイベントをトリガするためにサウンドなしで経過する必要がある時間を指定するには、Microphone.setSilenceLevel() () を使用します。
ActivityEvent.ACTIVITY 定数は、type プロパティ(activity イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
activating | デバイスがアクティブになっている場合は true、非アクティブになっている場合は false です。 |
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | Camera オブジェクトや Microphone オブジェクトなど、セッションを開始または終了しているオブジェクトです。 |
関連項目
| status | イベント |
flash.events.StatusEventflash.events.StatusEvent.STATUS| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マイクがそのステータスをレポートしたときに送出されます。code プロパティの値が "Microphone.Muted" である場合、SWF ファイルのマイクへのアクセスをユーザーが拒否したことになります。code プロパティの値が "Microphone.Unmuted" である場合、SWF ファイルのマイクへのアクセスをユーザーが許可したことになります。
type プロパティ (status イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
code | オブジェクトのステータスの説明です。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
level | "status"、"warning"、"error" など、メッセージのカテゴリです。 |
target | そのステータスをレポートするオブジェクトです。 |
関連項目
Security.showSettings() メソッドは、ユーザーのマイクに対するアクセス許可を要求する Flash Player ダイアログボックスを表示します。setLoopBack(true) を呼び出すと、入力をローカルスピーカーに切り替えるため、例を実行中にサウンドを聴くことができます。
2 つのリスナーは、activity および status のイベントを受け取ります。activity イベントはセッションの開始時と終了時(存在する場合)に送出され、activityHandler() メソッドによって捕捉されます。このメソッドはイベントの情報をトレースします。status イベントは、関連付けられた Microphone オブジェクトがステータス情報をレポートした場合に送出され、statusHandler() メソッドを使用して捕捉、トレースされます。
メモ : この例を正しく機能させるには、コンピュータにマイクを接続しておく必要があります。
package {
import flash.display.Sprite;
import flash.events.*;
import flash.media.Microphone;
import flash.system.Security;
public class MicrophoneExample extends Sprite {
public function MicrophoneExample() {
var mic:Microphone = Microphone.getMicrophone();
Security.showSettings("2");
mic.setLoopBack(true);
if (mic != null) {
mic.setUseEchoSuppression(true);
mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
mic.addEventListener(StatusEvent.STATUS, statusHandler);
}
}
private function activityHandler(event:ActivityEvent):void {
trace("activityHandler: " + event);
}
private function statusHandler(event:StatusEvent):void {
trace("statusHandler: " + event);
}
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/media/Microphone.html