Erstellen des ASF-Splitterobjekts

Das ASF-Splitterobjekt ist ein WMContainer-Ebenenobjekt, das das ASF-Datenobjekt einer ASF-Datei (Advanced Systems Format) analysiert. Um eine neue instance des ASF-Splitterobjekts zu erstellen, rufen Sie die MFCreateASFSplitter-Funktion auf. Diese Funktion gibt einen Zeiger auf die IMFASFSplitter-Schnittstelle zurück, die ein leeres Splitterobjekt darstellt.

Bevor der Splitter mit der Analyse beginnen kann, muss die Anwendung den Splitter mit Informationen aus dem ASF-Headerobjekt initialisieren. Um den Splitter zu initialisieren, rufen Sie die METHODE IMFASFSplitter::Initialize auf . Diese Methode verwendet einen Zeiger auf das ASF ContentInfo-Objekt , das Headerinformationen der zu analysierenden ASF-Datei enthält. Die Anwendung muss das ContentInfo-Objekt initialisieren, bevor es an den Splitter übergeben wird, damit die Eigenschaften der Mediendatei der Anwendung bekannt sind. Die Initialize-Methode des Splitters extrahiert Datenstrominformationen aus dem ContentInfo-Objekt, z. B. Datenstromnummern, damit der Splitter die Datenpakete analysieren kann.

Beispiel

Das folgende Codebeispiel zeigt, wie Sie einen Splitter erstellen und mit einem vorhandenen ContentInfo-Objekt initialisieren.

// Create and initialize the ASF splitter.

HRESULT CreateASFSplitter (IMFASFContentInfo* pContentInfo, 
    IMFASFSplitter** ppSplitter)
{
    IMFASFSplitter *pSplitter = NULL;

    // Create the splitter object.
    HRESULT hr = MFCreateASFSplitter(&pSplitter);

    // Initialize the splitter to work with specific ASF data.
    if (SUCCEEDED(hr))
    {
        hr = pSplitter->Initialize(pContentInfo);
    }
    if (SUCCEEDED(hr))
    {
        // Return the object to the caller.
        *ppSplitter = pSplitter;
        (*ppSplitter)->AddRef();
    }
    SafeRelease(&pSplitter);
    return hr;
}

Hinweis

In diesem Beispiel wird die SafeRelease-Funktion verwendet, um Schnittstellenzeiger freizugeben.

 

ASF-Splitter