| パッケージ | flash.media |
| public final class Microphone | |
| 継承 | Microphone EventDispatcher Object |
Microphone クラスは主に Flash Media Server や Flex などのサーバーで使用します。ただし、Microphone クラスはサーバーなしでも限定された方法で使用することもできます。たとえば、マイクからのサウンドをローカルコンピュータのスピーカーを通して出力することができます。マイクからオーディオをストリーミングするには、Microphone オブジェクトを NetStream オブジェクトに関連付けます。
注意 :Flash Player に [プライバシー] ダイアログボックスが表示され、ユーザーはマイクへのアクセスを許可するか拒否するかを選択できます。アプリケーションウィンドウのサイズは必ず 215 × 138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。
Microphone オブジェクトを作成または参照するには、Microphone.getMicrophone() メソッドを使用します。
| プロパティ | 定義 | ||
|---|---|---|---|
| activityLevel : Number
[read-only]
マイクが検知している音量。
| Microphone | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| gain : Number
マイクによるサウンドのゲイン (増幅率) は、シグナルが転送前にマイクで増幅される量を表します。
| Microphone | ||
| index : int
[read-only]
マイクのインデックスです。これは、
Microphone.namesから返される配列のインデックスと同じです。 | Microphone | ||
| muted : Boolean
[read-only]
ユーザーがマイクへのアクセスを拒否しているか (
true) 許可しているか (false) を指定します。 | Microphone | ||
| name : String
[read-only]
サウンドキャプチャハードウェアから返される現在のサウンドキャプチャデバイスの名前です。
| Microphone | ||
| names : Array
[static][read-only]
使用できるすべてのサウンドキャプチャデバイスの名前です。
| Microphone | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| rate : int
マイクのサウンドキャプチャレート (kHz) です。
| Microphone | ||
| silenceLevel : Number
[read-only]
マイクを有効化したり、
activity イベントを送出するために必要な音量です。 | Microphone | ||
| silenceTimeout : int
[read-only]
マイクがサウンド検知を停止してから、
activity イベントが送出されるまでの時間 (ミリ秒単位) です。 | Microphone | ||
| soundTransform : SoundTransform
loopback モードになっているとき、この microphone オブジェクトのサウンドを制御します。
| Microphone | ||
| useEchoSuppression : Boolean
[read-only]
エコー抑制が有効になっている場合は
true、それ以外の場合は false を返します。 | Microphone | ||
| メソッド | 定義 | ||
|---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
| EventDispatcher | |
![]() | dispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
| EventDispatcher | |
| getMicrophone(index:int = 0):Microphone
[static]
Microphone オブジェクトを作成または参照するには、
Microphone.getMicrophone() メソッドを使用して、現在のマイクのインデックス値を取得します。 | Microphone | ||
![]() | hasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() | hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() | isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() | propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
| Object | |
![]() | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
| setLoopBack(state:Boolean = true):void
マイクを loopback モードに設定するか、オフにします。
| Microphone | ||
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
| setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
サウンドと見なす最小入力レベルと、実際に無音状態が始まったと見なすまでの無音時間の長さを設定します。後者は省略可能です。
| Microphone | ||
| setUseEchoSuppression(useEchoSuppression:Boolean):void
オーディオコーデックのエコー抑制機能を使用するかどうかを指定します。
| Microphone | ||
![]() | toString():String
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() | valueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
| Object | |
![]() | willTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| イベント | 一覧 | 定義 | ||
|---|---|---|---|---|
| activity | マイクがセッションを開始または終了したときに送出されます。 | Microphone | ||
| status | マイクがそのステータスをレポートしたときに送出されます。 | Microphone | ||
| activityLevel | プロパティ |
activityLevel:Number [read-only]
マイクが検知している音量。値の範囲は 0 (サウンドが検知されていない) ~ 100 (非常に大音量が検知されている) です。このプロパティ値に基づいて、Microphone.setSilenceLevel() メソッドに渡す適切な値を判断できます。
マイクを利用できる状態であっても、Microphone.getMicrophone() がまだ呼び出されていないためにまだ使用されていない場合は、このプロパティは -1 に設定されます。
public function get activityLevel():Number
関連項目
| gain | プロパティ |
gain:Number [read-write]マイクによるサウンドのゲイン (増幅率) は、シグナルが転送前にマイクで増幅される量を表します。値 0 は 0 倍、つまりサウンドが転送されないことを示します。
この設定はステレオのボリュームつまみのようなものと考えることができます。0 はボリュームなしであり、50 は通常のボリュームです。50 より小さい値は通常よりも低いボリューム、50 より大きい値は通常よりも大きいボリュームを表します。有効な値は 0 ~ 100 です。ユーザーは [Macromedia Flash Player 設定] パネルの [マイク] を使用してこの値を変更できます。
実装 public function get gain():Number
public function set gain(value:Number):void
関連項目
| index | プロパティ |
index:int [read-only]
マイクのインデックスです。これは、Microphone.namesから返される配列のインデックスと同じです。
public function get index():int
関連項目
| muted | プロパティ |
muted:Boolean [read-only]
ユーザーがマイクへのアクセスを拒否しているか (true) 許可しているか (false) を指定します。この値が変わると、Microphone.onStatus が呼び出されます。詳細については、Microphone.getMicrophone()を参照してください。
public function get muted():Boolean
関連項目
| name | プロパティ |
name:String [read-only]サウンドキャプチャハードウェアから返される現在のサウンドキャプチャデバイスの名前です。
実装 public function get name():String
関連項目
| names | プロパティ |
names:Array [read-only]
使用できるすべてのサウンドキャプチャデバイスの名前です。この名前は、ユーザーに [Macromedia Flash Player 設定] パネルの [プライバシー] を表示せずに返されます。この配列により、各サウンドキャプチャデバイスのゼロから始まるインデックスと、システム上の各サウンドキャプチャデバイスの数 (Microphone.names.length プロパティ) を調べることができます。詳細については、Array クラスのエントリを参照してください。
Microphone.names プロパティを呼び出すと、ハードウェアを広範囲にわたって調べる必要があり、配列を作成するまでに数秒間かかることがあります。ほとんどの場合は、デフォルトのマイクをそのまま使用できます。
メモ:現在のマイクの名前を調べるには、name プロパティを使用します。
public static function get names():Array
関連項目
| rate | プロパティ |
rate:int [read-write]マイクのサウンドキャプチャレート (kHz) です。デフォルト値は 8 kHz ですが、サウンドキャプチャデバイスがこの値に対応している必要があります。対応していない場合、デフォルト値はそのサウンドキャプチャデバイスが対応している 8 kHz よりも高いレートのうち、8 kHz に最も近い値になります。通常は 11 kHz です。
実装 public function get rate():int
public function set rate(value:int):void
| silenceLevel | プロパティ |
silenceLevel:Number [read-only]
マイクを有効化したり、activity イベントを送出するために必要な音量です。デフォルト値は 10 です。
public function get silenceLevel():Number
関連項目
| silenceTimeout | プロパティ |
silenceTimeout:int [read-only]
マイクがサウンド検知を停止してから、activity イベントが送出されるまでの時間 (ミリ秒単位) です。デフォルト値は 2000 (2 秒) です。
この値を設定するには、Microphone.setSilenceLevel() メソッドを使用します。
public function get silenceTimeout():int
関連項目
| soundTransform | プロパティ |
soundTransform:SoundTransform [read-write]loopback モードになっているとき、この microphone オブジェクトのサウンドを制御します。
実装 public function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
| useEchoSuppression | プロパティ |
useEchoSuppression:Boolean [read-only]
エコー抑制が有効になっている場合は true、それ以外の場合は false を返します。[Macromedia Flash Player 設定] パネルの [マイク] でユーザーが [エコーを減らす] を選択していない限り、デフォルト値は false です。
public function get useEchoSuppression():Boolean
関連項目
| getMicrophone | () | メソッド |
public static function getMicrophone(index:int = 0):Microphone
Microphone オブジェクトを作成または参照するには、Microphone.getMicrophone() メソッドを使用して、現在のマイクのインデックス値を取得します。次に、Microphone クラスのメソッドにこの値を渡します。
index:int (default = 0) — マイクのインデックス値です。
|
Microphone |
status:StatusEvent — マイクがそのステータスをレポートしたときに送出されます。code プロパティの値が "Microphone.muted" である場合、SWF ファイルのマイクへのアクセス許可を拒否したことになります。code プロパティの値が "Microphone.unmuted" である場合、SWF ファイルのマイクへのアクセスを許可することになります。 |
関連項目
| setLoopBack | () | メソッド |
public function setLoopBack(state:Boolean = true):voidマイクを loopback モードに設定するか、オフにします。このメソッドにより、マイクサウンドがローカルスピーカーに切り替えられます。
パラメータstate:Boolean (default = true) |
| setSilenceLevel | () | メソッド |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):voidサウンドと見なす最小入力レベルと、実際に無音状態が始まったと見なすまでの無音時間の長さを設定します。後者は省略可能です。
silenceLevel に 100 を指定します。こうすると、activity が送出されることはありません。 Microphone.activityLevel を使います。 アクティビティ検知とは、人が話していることをオーディオレベルに基づいて検知する機能のことです。誰も話していないときは、関連付けられているオーディオストリームを送信する必要がないので、帯域幅を節約できます。この情報を利用して、ユーザー (または他の誰か) が話していないことを視覚的なフィードバックとして示すこともできます。
サイレンス値はアクティビティ値に直接対応します。完全なサイレンスのアクティビティ値は 0 です。継続的な大音量 (現在のゲインに基づいて設定できる大音量) のアクティビティ値は 100 です。ゲイン (増幅率) を適切に調整すると、話していないときにはアクティビティ値がサイレンス値よりも小さくなります。話しているときには、アクティビティ値はサイレンス値よりも大きくなります。
このメソッドの目的は Camera.setMotionLevel() に似ています。どちらのメソッドも、activity イベントの送出方法を指定するために使用します。ただし、パブリッシュするストリームに対する影響という点では、この 2 つのメソッドは大きく異なります。
Camera.setMotionLevel() はモーションを検知し、使用する帯域幅には影響しないように設計されています。ビデオストリームでモーションが検知されない間も、ビデオは送信されます。Microphone.setSilenceLevel() は帯域幅を最適化するように設計されています。オーディオストリームが無音と考えられる場合には、オーディオデータは送信されません。代わりに、無音状態が始まったことを示すメッセージが送信されます。 silenceLevel:Number — マイクを有効化したり、activity イベントを送出するために必要な音量です。使用可能な値の範囲は 0 から 100 です。
|
|
timeout:int (default = -1) — アクティビティがない場合に、サウンドが停止したと判定して dispatch イベントを送出するまでの時間 (ミリ秒単位) です。デフォルト値は 2000 (2 秒) です。(メモ :シグネチャで示される -1 のデフォルト値は、2000 を使用することを Flash Player に伝える内部値です。)
|
関連項目
| setUseEchoSuppression | () | メソッド |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
オーディオコーデックのエコー抑制機能を使用するかどうかを指定します。[Macromedia Flash Player 設定] パネルの [マイク] でユーザーが [エコーを減らす] を選択していない限り、デフォルト値は false です。
エコー抑制とは、スピーカーから出たサウンドが同じコンピュータのマイクによって拾われるオーディオフィードバックの影響を減らす機能のことです。これは、フィードバックを完全に除去するエコー除去機能とは異なります。
一般に、キャプチャするサウンドをヘッドセットではなく同じコンピュータのスピーカーで再生する場合には、エコー抑制機能を使うことが推奨されます。サウンド出力デバイスをユーザーが選択できるようにした SWF ファイルでは、ユーザーがスピーカーを選択し、マイクも使用する場合に Microphone.setUseEchoSuppression(true) を呼び出すことをお勧めします。
ユーザーは、[Macromedia Flash Player 設定] パネルの [マイク] でこれらの設定を調整することもできます。
パラメータuseEchoSuppression:Boolean — エコー抑制を使用するか (true) 使用しないか (false) を示すブール値です。
|
関連項目
| activity | event |
flash.events.ActivityEvent
flash.events.ActivityEvent.ACTIVITY
マイクがセッションを開始または終了したときに送出されます。
ActivityEvent.ACTIVITY 定数は、activity イベントオブジェクトの type プロパティ値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
activating | デバイスがアクティブになっている場合は true、非アクティブになっている場合は false です。 |
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | Camera オブジェクトや Microphone オブジェクトなど、セッションを開始または終了しているオブジェクトです。 |
| status | event |
flash.events.StatusEvent
flash.events.StatusEvent.STATUS
マイクがそのステータスをレポートしたときに送出されます。code プロパティの値が "Microphone.muted" である場合、SWF ファイルのマイクへのアクセス許可を拒否したことになります。code プロパティの値が "Microphone.unmuted" である場合、SWF ファイルのマイクへのアクセスを許可することになります。
status イベントオブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
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);
}
}
}