Partilhar via


Evento MEBufferingStarted

Sinaliza que uma fonte de mídia começou a armazenar dados em buffer.

Uma fonte de mídia poderá enviar esse evento se a origem armazenar dados em buffer enquanto a Sessão de Mídia estiver em execução. Quando a Sessão de Mídia recebe esse evento, ela pausa o relógio de apresentação até que a fonte de mídia envie o evento MEBufferingStopped . A Sessão de Mídia também encaminha o evento MEBufferingStarted para o aplicativo.

Os fluxos de bytes que implementam a interface IMFByteStreamBuffering também enviam esse evento.

Valores de evento

Os valores possíveis recuperados de IMFMediaEvent::GetValue incluem o seguinte.

VARTYPE Descrição
VT_EMPTY
Nenhum dado do evento.

Comentários

Se uma fonte de mídia enviar o evento MEBufferingStarted, ele deverá enviar o evento MEBufferingStopped quando parar de armazenar dados em buffer. A fonte de mídia deve enviar um evento MEBufferingStopped correspondente para cada evento MEBufferingStarted. A fonte de mídia não deve encaminhar esses eventos antes que o método IMFMediaSource::Start da origem seja chamado ou depois que o método IMFMediaSource::Stop da origem for chamado.

Se você estiver transmitindo da fonte de rede do Media Foundation, poderá obter o progresso do buffer consultando a estatística de MFNETSOURCE_BUFFERPROGRESS_ID . Para obter mais informações, consulte MFNETSOURCE_STATISTICS_IDS.

Exemplos

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

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Mfobjects.h (inclua Mfidl.h)

Confira também

Eventos do Media Foundation

Rede na Media Foundation