パッケージflash.media
クラスpublic final class Microphone
継承Microphone Inheritance EventDispatcher Inheritance Object

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

Microphone クラスを使用すると、Flash Player を実行するコンピュータに接続されたマイクからオーディオをキャプチャできます。Microphone クラスは、オーディオをローカルで監視するために使用します。NetConnection および NetStream クラスは、Flash Media Server にオーディオを送信するために使用します。Flash Media Server は、他のサーバーにオーディオを送信し、Flash Player を実行する他のクライアントにブロードキャストできます。

ビデオのキャプチャに関する詳細については、Camera クラスのトピックを参照してください。

重要 : ユーザーがマイクへのアクセスを許可するか拒否するかを選択できるように、Flash Player で [プライバシー] ダイアログボックスが表示されます。アプリケーションウィンドウのサイズは必ず 215×138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。

Microphone オブジェクトを作成または参照するには、Microphone.getMicrophone() メソッドを使用します。

例を表示

関連項目

flash.media.Camera
サウンドの操作の基礎


パブリック プロパティ
 プロパティ定義元
  activityLevel : Number
[read-only] マイクが検知している音量です。
Microphone
 Inheritedconstructor : 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
 Inheritedprototype : 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
パブリック メソッド
 メソッド定義元
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
[static] オーディオをキャプチャする Microphone オブジェクトの参照を返します。
Microphone
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
setLoopBack(state:Boolean = true):void
マイクによってキャプチャされたオーディオをローカルスピーカーに転送します。
Microphone
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
サウンドと見なす最小入力レベルと、実際に無音状態が始まったと見なすまでの無音時間の長さを設定します。後者は省略可能です。
Microphone
  
setUseEchoSuppression(useEchoSuppression:Boolean):void
オーディオコーデックのエコー抑制機能を使用するかどうかを指定します。
Microphone
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
   マイクがセッションを開始または終了したときに送出されます。Microphone
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
   マイクがそのステータスをレポートしたときに送出されます。Microphone
プロパティの詳細
activityLevelプロパティ
activityLevel:Number  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクが検知している音量です。値の範囲は 0 (サウンドが検知されていない) ~ 100 (非常に大音量が検知されている) です。このプロパティ値に基づいて、Microphone.setSilenceLevel() メソッドに渡す適切な値を判断できます。

マイクを利用できる状態であっても、Microphone.getMicrophone() がまだ呼び出されていないためにまだ使用されていない場合は、このプロパティは -1 に設定されます。


実装
    public function get activityLevel():Number

関連項目

gainプロパティ 
gain:Number  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクによるサウンドのゲイン (増幅率) は、シグナルが転送前にマイクで増幅される量を表します。値 0 は 0 倍、つまりサウンドが送信されないことを示します。

この設定はステレオのボリュームつまみのようなものと考えることができます。0 はボリュームなしであり、50 は通常のボリュームです。50 より小さい値は通常よりも低いボリューム、50 より大きい値は通常よりも大きいボリュームを表します。有効な値は 0 ~ 100 で、デフォルト値は 50 です。ユーザーは [Macromedia Flash Player 設定] パネルの [マイク] を使用してこの値を変更できます。


実装
    public function get gain():Number
    public function set gain(value:Number):void

関連項目

indexプロパティ 
index:int  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクのインデックスです。これは、Microphone.names から返される配列のインデックスと同じです。


実装
    public function get index():int

関連項目

mutedプロパティ 
muted:Boolean  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ユーザーがマイクへのアクセスを拒否しているか (true)、許可しているか (false) を指定します。この値が変わると、status イベントが送出されます。詳細については、Microphone.getMicrophone() を参照してください。


実装
    public function get muted():Boolean

関連項目

nameプロパティ 
name:String  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

サウンドキャプチャハードウェアから返される現在のサウンドキャプチャデバイスの名前です。


実装
    public function get name():String

関連項目

namesプロパティ 
names:Array  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

使用可能なすべてのサウンドキャプチャデバイスの名前を含むストリングの配列です。この名前は、ユーザーに [Macromedia Flash Player 設定] パネルの [プライバシー] を表示せずに返されます。この配列により、各サウンドキャプチャデバイスの 0 から始まるインデックスと、システム上の各サウンドキャプチャデバイスの数 (Microphone.names.length プロパティ) を調べることができます。詳細については、Array クラスのエントリを参照してください。

Microphone.names プロパティを呼び出すと、ハードウェアを広範囲にわたって調べる必要があり、配列を作成するまでに数秒間かかることがあります。ほとんどの場合は、デフォルトのマイクをそのまま使用できます。

メモ :現在のマイクの名前を調べるには、name プロパティを使用します。


実装
    public static function get names():Array

関連項目

rateプロパティ 
rate:int  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : 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  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクを有効化したり、activity イベントを送出するために必要な音量です。デフォルト値は 10 です。


実装
    public function get silenceLevel():Number

関連項目

silenceTimeoutプロパティ 
silenceTimeout:int  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクがサウンド検知を停止してから、activity イベントが送出されるまでの時間 (ミリ秒単位) です。デフォルト値は 2000 (2 秒) です。

この値を設定するには、Microphone.setSilenceLevel() メソッドを使用します。


実装
    public function get silenceTimeout():int

関連項目

soundTransformプロパティ 
soundTransform:SoundTransform  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

loopback モードになっているとき、この microphone オブジェクトのサウンドを制御します。


実装
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void
useEchoSuppressionプロパティ 
useEchoSuppression:Boolean  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

エコー抑制が有効になっている場合は true、それ以外の場合は false に設定します。[Macromedia Flash Player 設定] パネルの [マイク] でユーザーが [エコーを減らす] を選択していない限り、デフォルト値は false です。


実装
    public function get useEchoSuppression():Boolean

関連項目

メソッドの詳細
getMicrophone()メソッド
public static function getMicrophone(index:int = 0):Microphone

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

オーディオをキャプチャする Microphone オブジェクトの参照を返します。オーディオのキャプチャを開始するには、Microphone オブジェクトを NetStream オブジェクトに接続する必要があります。NetStream.attachAudio() のトピックを参照してください。

Microphone.get() を複数回呼び出すと、同じマイクが参照されます。このため、コードに mic1 = Microphone.get() という行と mic2 = Microphone.get() という行が含まれている場合、mic1mic2 は両方とも同じデフォルトのマイクを参照します。

現在の Microphone オブジェクトのインデックス値を取得するには、index プロパティを使用します。次に、Microphone クラスの他のメソッドにこの値を渡します。

通常は、index の値を渡さないでください。デフォルトのマイクを参照するには、単に、Microphone.get() メソッドを使用します。[マイク] パネルを使用することで、Flash Player で使用するデフォルトのマイクをユーザーが指定できます。index で値を渡すと、ユーザーが使用するのとは異なるマイクが参照される可能性があります。index を使用できるのは、アプリケーションで 2 つのマイクから同時にオーディオをキャプチャする場合など、特殊な場合です。

SWF ファイルで Microphone.get() メソッドから返されたマイクにアクセスしようとすると (NetStream.attachAudio() を呼び出すなど)、[プライバシー] ダイアログボックスが表示され、そのマイクへのアクセスを許可するか拒否するかをユーザーが選択できます。ステージのサイズは必ず 215 × 138 ピクセル以上に設定してください。これは、ダイアログボックスを表示するために必要な最小サイズです。

ユーザーがこのダイアログボックスに応答すると、ユーザーの応答を示す status イベントが送出されます。Microphone.muted プロパティを確認して、ユーザーがマイクへのアクセスを許可したか、拒否したかを判別することもできます。

Microphone.get()null を返した場合は、マイクが別のアプリケーションで使用されているか、そのシステムにマイクがインストールされていません。マイクがインストールされているかどうかを調べるには、Microphones.names.length を使用します。Flash Player の [マイク] パネルを表示して、Microphone.get() で参照するマイクをユーザーが選択できるようにするには、Security.showSettings() を使用します。

パラメータ

index:int (default = 0) — マイクのインデックス値です。

戻り値
Microphone

イベント
status:StatusEvent — マイクがそのステータスをレポートしたときに送出されます。code プロパティの値が "Microphone.Muted" である場合、SWF ファイルのマイクへのアクセスをユーザーが拒否しています。code プロパティの値が "Microphone.Unmuted" である場合、SWF ファイルのマイクへのアクセスをユーザーが許可しています。

関連項目

setLoopBack()メソッド 
public function setLoopBack(state:Boolean = true):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクによってキャプチャされたオーディオをローカルスピーカーに転送します。

パラメータ

state:Boolean (default = true)

setSilenceLevel()メソッド 
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

サウンドと見なす最小入力レベルと、実際に無音状態が始まったと見なすまでの無音時間の長さを設定します。後者は省略可能です。

アクティビティ検知とは、人が話していることをオーディオレベルに基づいて検知する機能のことです。誰も話していないときは、関連付けられているオーディオストリームを送信する必要がないので、帯域幅を節約できます。この情報を利用して、ユーザー (または他の誰か) が話していないことを視覚的なフィードバックとして示すこともできます。

サイレンス値はアクティビティ値に直接対応します。完全なサイレンスのアクティビティ値は 0 です。継続的な大音量 (現在のゲインに基づいて設定できる大音量) のアクティビティ値は 100 です。ゲイン (増幅率) を適切に調整すると、話していないときにはアクティビティ値がサイレンス値よりも小さくなります。話しているときには、アクティビティ値はサイレンス値よりも大きくなります。

このメソッドは Camera.setMotionLevel() に似ています。どちらのメソッドも、activity イベントの送出タイミングを指定するために使用します。ただし、パブリッシュするストリームに対する影響という点では、この 2 つのメソッドは大きく異なります。

パラメータ

silenceLevel:Number — マイクを有効化したり、activity イベントを送出するために必要な音量です。使用可能な値の範囲は 0 ~ 100 です。
 
timeout:int (default = -1) — アクティビティがない場合に、サウンドが停止したと判定して dispatch イベントを送出するまでの時間 (ミリ秒単位) です。デフォルト値は 2000 (2 秒) です (メモ : シグネチャで示される -1 のデフォルト値は、2000 を使用することを Flash Player に伝える内部値です)。

関連項目

setUseEchoSuppression()メソッド 
public function setUseEchoSuppression(useEchoSuppression:Boolean):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

オーディオコーデックのエコー抑制機能を使用するかどうかを指定します。[Macromedia Flash Player 設定] パネルの [マイク] でユーザーが [エコーを減らす] を選択していない限り、デフォルト値は false です。

エコー抑制とは、スピーカーから出たサウンドが同じコンピュータのマイクによって拾われるオーディオフィードバックの影響を減らす機能のことです。これは、フィードバックを完全に除去するエコー除去機能とは異なります。

一般に、キャプチャするサウンドをヘッドセットではなく同じコンピュータのスピーカーで再生する場合には、エコー抑制機能を使用することが推奨されます。サウンド出力デバイスをユーザーが選択できるようにした SWF ファイルでは、ユーザーがスピーカーを選択し、マイクも使用する場合に Microphone.setUseEchoSuppression(true) を呼び出すことをお勧めします。

ユーザーは、[Macromedia Flash Player 設定] パネルの [マイク] でこれらの設定を調整することもできます。

パラメータ

useEchoSuppression:Boolean — エコー抑制を使用するか (true) 使用しないか (false) を示すブール値です。

関連項目

イベントの詳細
activity イベント
イベントオブジェクトの型: flash.events.ActivityEvent
ActivityEvent.type property = flash.events.ActivityEvent.ACTIVITY

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクがセッションを開始または終了したときに送出されます。

activating プロパティを true に設定して、このイベントをトリガするために必要な音量を指定するか、activating プロパティを false に設定して、このイベントをトリガするためにサウンドなしで経過する必要がある時間を指定するには、Microphone.setSilenceLevel() を使用します。

ActivityEvent.ACTIVITY 定数は、type プロパティ (activity イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
activatingデバイスがアクティブになっている場合は true、非アクティブになっている場合は false です。
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetCamera オブジェクトや Microphone オブジェクトなど、セッションを開始または終了しているオブジェクトです。

関連項目

status イベント  
イベントオブジェクトの型: flash.events.StatusEvent
StatusEvent.type property = flash.events.StatusEvent.STATUS

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

マイクがそのステータスをレポートしたときに送出されます。code プロパティの値が "Microphone.Muted" である場合、SWF ファイルのマイクへのアクセスをユーザーが拒否しています。code プロパティの値が "Microphone.Unmuted" である場合、SWF ファイルのマイクへのアクセスをユーザーが許可しています。

type プロパティ (status イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
codeオブジェクトのステータスの説明です。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
level"status""warning""error" など、メッセージのカテゴリです。
targetそのステータスをレポートするオブジェクトです。

関連項目

例の使用法
MicrophoneExample.as

次の例では、コンピュータのマイクへのアクセスを許可した後に、エコー抑制を使用してマイクからサウンドをキャプチャします。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;
    import flash.system.SecurityPanel;

    public class MicrophoneExample extends Sprite {
        public function MicrophoneExample() {
            var mic:Microphone = Microphone.getMicrophone();
            Security.showSettings(SecurityPanel.MICROPHONE);
            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/flash/9.0_jp/ActionScriptLangRefV3/flash/media/Microphone.html