次の方法で共有


複数ファイルへのキャプチャ

ファイルにビデオをキャプチャした後、グラフを停止し、ファイル ライタ フィルタでファイル名を設定すると、新しいファイルに切り替えられる。ファイル ライタに対して IFileSinkFilter::SetFileName メソッドを呼び出す。SetOutputFileName メソッドの pSink パラメータを使い、グラフを作成するときに IFileSinkFilter インターフェイスへのポインタを取得できる。次のコードは、その方法を示している。

IBaseFilter *pMux;
IFileSinkFilter *pSink
hr = pBuild->SetOutputFileName(&MEDIASUBTYPE_Avi, L"C:\\YourFileName.avi", 
    &pMux, &pSink);
if (SUCCEEDED(hr))
{
    hr = pBuild->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, 
        pCap, NULL, pMux);

    if (SUCCEEDED(hr))
    {
        pControl->Run();
        /* 少しの間待機した後、グラフを停止する。 */
        pControl->Stop();
        // ファイル名を変更し、もう一度グラフを実行する。
        pSink->SetFileName(L"YourFileName02.avi", 0);
        pControl->Run();
    }
    pMux->Release();
    pSink->Release();
}