Freigeben über


MEBufferingStarted-Ereignis

Signalisiert, dass eine Medienquelle begonnen hat, Daten zu puffern.

Eine Medienquelle kann dieses Ereignis senden, wenn die Quelle Daten puffert, während die Mediensitzung ausgeführt wird. Wenn die Mediensitzung dieses Ereignis empfängt, wird die Präsentationsuhr angehalten, bis die Medienquelle das MEBufferingStopped-Ereignis sendet. Die Mediensitzung leitet auch das MEBufferingStarted-Ereignis an die Anwendung weiter.

Bytestreams, die die IMFByteStreamBuffering-Schnittstelle implementieren, senden dieses Ereignis ebenfalls.

Ereigniswerte

Mögliche Werte, die von IMFMediaEvent::GetValue abgerufen werden, umfassen Folgendes.

VARTYPE Beschreibung
VT_EMPTY
Keine Ereignisdaten.

Bemerkungen

Wenn eine Medienquelle das MEBufferingStarted-Ereignis sendet, muss sie das MEBufferingStopped-Ereignis senden, wenn das Puffern von Daten beendet wird. Die Medienquelle muss für jedes MEBufferingStarted-Ereignis ein übereinstimmendes MEBufferingStopped-Ereignis senden. Die Medienquelle sollte diese Ereignisse nicht weiterleiten, bevor die IMFMediaSource::Start-Methode der Quelle aufgerufen wird oder nachdem die IMFMediaSource::Stop-Methode der Quelle aufgerufen wurde.

Wenn Sie das Streaming von der Media Foundation-Netzwerkquelle ausführen, können Sie den Pufferfortschritt abrufen, indem Sie die MFNETSOURCE_BUFFERPROGRESS_ID Statistik abfragen. Weitere Informationen finden Sie unter MFNETSOURCE_STATISTICS_IDS.

Beispiele

HRESULT GetBufferProgress(IMFMediaSession *pSession, DWORD *pProgress)
{
    IPropertyStore *pProp = NULL;
    PROPVARIANT var;

    // Get the property store from the media session.
    HRESULT hr = MFGetService(
        pSession, 
        MFNETSOURCE_STATISTICS_SERVICE, 
        IID_PPV_ARGS(&pProp)
        );

    if (SUCCEEDED(hr))
    {
        PROPERTYKEY key;
        key.fmtid = MFNETSOURCE_STATISTICS;
        key.pid = MFNETSOURCE_BUFFERPROGRESS_ID;

        hr = pProp->GetValue(key, &var);
    }

    if (SUCCEEDED(hr))
    {
        *pProgress = var.lVal;
    }

    PropVariantClear(&var);
    SafeRelease(&pProp);
    return hr;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [nur Desktop-Apps]
Header
Mfobjects.h (include Mfidl.h)

Weitere Informationen

Media Foundation-Ereignisse

Netzwerk in Media Foundation