イベント (WaveIn コントロール)

OnBusyFlagChange イベント

IsBusy プロパティの値が変化したときに発生します。

構文

Private Sub object_OnBusyFlagChange ([index As Integer])

OnBusyFlagChange イベントの構文の指定項目は次のとおりです。

指定項目内容
objectWaveIn コントロールを指すオブジェクト式です。
indexobject がコントロール配列の場合に、配列内の個々のコントロールを指す整数値です。

解説

録音を開始したとき、および録音を終了したときにこのイベントが発生します。録音中かどうかは、IsBusy プロパティの値で調べることができます。

通常、録音が終了したときには、Close メソッドを呼び出してデバイスを解放します。

OnClose イベント

ウェーブ入力デバイスが閉じたときに発生します。

構文

Private Sub object_OnClose ([index As Integer])

OnClose イベントの構文の指定項目は次のとおりです。

指定項目内容
objectWaveIn コントロールを指すオブジェクト式です。
indexobject がコントロール配列の場合に、配列内の個々のコントロールを指す整数値です。

解説

Close メソッドを呼び出し、デバイスが閉じられると発生します。

このイベントが発生した後は、再度 Open メソッドを呼び出さない限り、AddBuffer メソッドなど、デバイスが開いているときにしか利用できないメソッドを呼び出すことはできません。

Form_Terminate イベント プロシージャ、Form_Unload イベント プロシージャ、および Form_QueryUnload イベント プロシージャ内でデバイスを閉じた場合には、OnClose イベントは発生しません。

OnDone イベント

録音バッファがデバイスから解放されたときに発生します。

構文

Private Sub object_OnDone ([index As Integer,]ByVal BufferIndex As Integer, ByVal BytesRecorded As Long, ByVal bStopped As Boolean)

OnDone イベントの構文の指定項目は次のとおりです。

指定項目内容
objectWaveIn コントロールを指すオブジェクト式です。
indexobject がコントロール配列の場合に、配列内の個々のコントロールを指す整数値です。
BufferIndex解放されたバッファのインデックスです。
BytesRecorded何バイト録音されたかを示す数値です。
bStoppedバッファが解放された理由を示すフラグです。詳しくは、次の「戻り値」を参照してください。

戻り値

bStopped に設定される値は次のとおりです。

設定値内容
TrueStop メソッドの呼び出しにより、バッファが強制的に解放されました。
Falseバッファがいっぱいになったため、バッファが解放されました。

解説

AddBuffer メソッドによって追加されたバッファがデバイスから解放されると、このイベントが発生します。どのバッファが解放されたかは、BufferIndex によって示されます。BufferIndex によって示されるバッファはデバイスからすでに解放されているで、再度 AddBuffer メソッドによってデバイスに追加することができます。こうすることにより、録音を継続することができます。

解放されたバッファには、録音されたデータが入っています。録音されたデータは、GetData メソッドにより取得することができます。

必ずしも、バッファいっぱいにデータが入っているとは限りません。実際に何バイト録音されたかは BytesRecorded によって調べることができます。

bStopped は、バッファが解放された理由を表します。bStopped の値が偽 (False) の場合は、単純にバッファがいっぱいになったためにバッファが解放されたことを示します。bStopped の値が真 (True) の場合は、Stop メソッドの呼び出しにより、デバイス内にあるバッファ (処理待ちのバッファも含む) が強制的に解放されたことを示します。

OnDone イベント内で AddBuffer メソッドを呼び出す場合は、bStopped の値が偽 (False) であることを必ず確認してください。bStopped の値が真 (True) の場合に AddBuffer メソッドを呼び出すと、Stop メソッドを呼び出しても録音を停止できなくなります。

VB
Private Sub WaveIn_OnDone(ByVal BufferIndex As Integer, ByVal BytesRecorded As Long, ByVal bStopped As Boolean)
    Dim Buffer() As Byte

    ' データが録音されていれば、
    If (BytesRecorded > 0) Then
        ' 録音されたデータを取得します。
        ReDim Buffer(BytesRecorded - 1)
        WaveIn.GetData Buffer, BufferIndex, BytesRecorded

        ' ここで、Buffer にあるデータを処理します。
        ' ...
    End If

    ' Stop メソッドが呼び出されていないかを調べます。
    If (bStopped = False) Then
        ' 録音用のバッファを追加します。
        WaveIn.AddBuffer BufferIndex
    End If
End Sub

OnOpen イベント

ウェーブ入力デバイスが開いたときに発生します。

構文

Private Sub object_OnOpen ([index As Integer])

OnOpen イベントの構文の指定項目は次のとおりです。

指定項目内容
objectWaveIn コントロールを指すオブジェクト式です。
indexobject がコントロール配列の場合に、配列内の個々のコントロールを指す整数値です。

解説

Open メソッドの呼び出しによりデバイスが開かれると、このイベントが発生します。

OnPausedFlagChange イベント

IsPaused プロパティの値が変化したときに発生します。

構文

Private Sub object_OnPausedFlagChange ([index As Integer])

OnPausedFlagChange イベントの構文の指定項目は次のとおりです。

指定項目内容
objectWaveIn コントロールを指すオブジェクト式です。
indexobject がコントロール配列の場合に、配列内の個々のコントロールを指す整数値です。

解説

一時停止状態になったとき、および一時停止が解除されたときに発生します。一時停止状態であるかどうかは、IsPaused プロパティの値で調べることができます。