次の方法で共有


スクリプトでのストリーム バッファ エンジンの使い方

このトピックは 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