Condividi tramite


Creazione dell'oggetto splitter ASF

L'oggetto splitter ASF è un oggetto livello WMContainer che analizza l'oggetto dati ASF di un file ASF (Advanced Systems Format). Per creare una nuova istanza dell'oggetto splitter ASF, chiamare la funzione MFCreateASFSplitter . Questa funzione restituisce un puntatore all'interfaccia IMFASFSplitter che rappresenta un oggetto splitter vuoto.

Prima che il componente di divisione possa iniziare l'analisi, l'applicazione deve inizializzare il componente di divisione con le informazioni dell'oggetto intestazione ASF. Per inizializzare il componente di divisione, chiamare il metodo IMFASFSplitter::Initialize . Questo metodo accetta un puntatore all'oggetto ContentInfo ASF che contiene le informazioni di intestazione del file ASF da analizzare. L'applicazione deve inizializzare l'oggetto ContentInfo prima di passarlo al separatore in modo che le caratteristiche del file multimediale siano note all'applicazione. Il metodo Initialize del componente di divisione estrae le informazioni sul flusso dall'oggetto ContentInfo, ad esempio i numeri di flusso, in modo che il separatore possa analizzare i pacchetti di dati.

Esempio

Nell'esempio di codice seguente viene illustrato come creare una barra di divisione e inizializzarla con un oggetto ContentInfo esistente.

// 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;
}

Nota

In questo esempio viene usata la funzione SafeRelease per rilasciare puntatori all'interfaccia.

 

Barra di divisione ASF