スクリプトでのストリーム バッファ エンジンの使い方
このトピックは Windows XP Service Pack 1 にのみ適用。
ビデオ コントロールはストリーム バッファ エンジンを使ってライブ ビデオをポーズさせることができる。別々の 2 つのビデオ コントロール インスタンスを Web ページに配置する。1 つ目のインスタンスは MSVidStreamBufferSink (シンク) オブジェクトを使ってチューニング要求を受け取り、コンテンツを記録する。2 つ目のインスタンスは MSVidStreamBufferSource (ソース) オブジェクトを使ってコンテンツを再生する。
次の例では、MSVidCtl_Sink がシンク、MSVidCtl_Src がソースである。
<BODY>
<!-- ビデオ コントロールのストリーム バッファ シンク インスタンス -->
<OBJECT
ID="MSVidCtl_Sink"
CLASSID="CLSID:B0EDF163-910A-11D2-B632-00C04F79498E" >
</OBJECT>
<!-- ビデオ コントロールのストリーム バッファ ソース インスタンス -->
<OBJECT
ID="MSVidCtl_Src"
CLASSID="CLSID:B0EDF163-910A-11D2-B632-00C04F79498E" >
</OBJECT>
</BODY>
ストリーム バッファ シンクの初期化
最初にチューニング要求を作成し、それをビデオ コントロールのストリーム バッファ シンク インスタンスに渡す。詳細については、「チューニング要求の作成 (スクリプト)」を参照すること。次に、アクティブ フィーチャー コレクションにエンコーダ フィーチャー (CLSID_MSVidEncoder) を追加する。
ENC_CLSID = "{BB530C63-D9DF-4B49-9439-63453962E598}"
' 空のフィーチャー コレクションを作成する
Set MyFeatures = CreateObject("MSVidCtl.MSVidFeatures")
' 使用可能なフィーチャーを列挙する
For Each feature In MSVidCtl.FeaturesAvailable
' MSVidEncoder フィーチャーを探す
If (feature.ClassID = ENC_CLSID) Then
MyFeatures.Add feature
End If
' オプションで、その他のフィーチャーを追加する (省略)
Next
' これをアクティブなフィーチャー コレクションとして使用する。
MSVidCtl_Sink.FeaturesActive = MyFeatures
GUID_NULL カテゴリの使用可能な出力デバイスを列挙し、MSVidStreamBufferSink オブジェクトをアクティブな出力デバイスとして設定する。
GUID_NULL = "{00000000-0000-0000-0000-000000000000}"
SINK_CLSID = "{9E77AAC4-35E5-42A1-BDC2-8F3FF399847C}"
' 空の出力デバイス コレクションを作成する。
Set MyOutputs = CreateObject("MSVidCtl.MSVidOutputDevices")
' 使用可能な出力デバイスを列挙する。
Dim objStreamBufferSink
For Each output In MSVidCtl.OutputsAvailable(GUID_NULL)
If output.ClassID = SINK_CLSID Then
' これが目的のデバイスである。
MyOutputs.add output
Set objStreamBufferSink = output ' 後で使用できるように格納する。
End If
Next
' アクティブな出力コレクションを設定する。
MSVidCtl_Sink.OutputsActive = outs
出力デバイスのファイル名を指定する。
strFilename = "C:\Example.wmv
objStreamBufferSink.SinkName = strFilename
ストリーム バッファ シンクのビデオ コントロールでビデオ レンダリングおよびオーディオ レンダリングを無効にする。レンダリングはストリーム バッファ ソース インスタンスによって実行される。
MSVidCtl_Sink.DisableVideo
MSVidCtl_Sink.DisableAudio
ストリーム バッファ ソースの初期化
ビデオ コントロールのもう 1 つのインスタンスを使って、GUID_NULL カテゴリの使用可能な入力デバイスを列挙する。MSVidStreamBufferSource デバイスをアクティブな入力デバイスとして設定する。
DVR_CLSID = "{AD8E510D-217F-409B-8076-29C5E73B98E8}"
Dim objStreamBufferSource
' 使用可能な入力を列挙する
For Each input in MSVidCtl_Src.InputsAvailable(GUID_NULL)
If input.ClassID = DVR_CLSID Then
' これが目的のデバイスである。
MSVidCtl_Src.InputActive = input
Set objStreamBufferSource = input ' 後で使用できるように格納する。
End If
Next
前に使ったのと同じファイル名を指定する。
objStreamBufferSource.FileName = strFilename
両方のビデオ コントロール インスタンスを実行する。
MSVidCtl_Src.Run
MSVidCtl_Sink.Run