Événement MEBufferingStarted
Signale qu’une source multimédia a commencé à mettre en mémoire tampon les données.
Une source multimédia peut envoyer cet événement si la source met en mémoire tampon des données pendant l’exécution de la session multimédia. Lorsque la session multimédia reçoit cet événement, elle suspend l’horloge de présentation jusqu’à ce que la source multimédia envoie l’événement MEBufferingStopped . La session multimédia transfère également l’événement MEBufferingStarted à l’application.
Les flux d’octets qui implémentent l’interface IMFByteStreamBuffering envoient également cet événement.
Valeurs d’événement
Les valeurs possibles récupérées à partir d’IMFMediaEvent::GetValue sont les suivantes.
VARTYPE | Description |
---|---|
VT_EMPTY |
Aucune donnée d'événement. |
Notes
Si une source multimédia envoie l’événement MEBufferingStarted, elle doit envoyer l’événement MEBufferingStopped lorsqu’elle arrête la mise en mémoire tampon des données. La source multimédia doit envoyer un événement MEBufferingStopped correspondant pour chaque événement MEBufferingStarted. La source multimédia ne doit pas transférer ces événements avant l’appel de la méthode IMFMediaSource::Start de la source ou après l’appel de la méthode IMFMediaSource::Stop de la source.
Si vous diffusez en continu à partir de la source réseau Media Foundation, vous pouvez obtenir la progression de la mise en mémoire tampon en interrogeant la statistique MFNETSOURCE_BUFFERPROGRESS_ID . Pour plus d’informations, consultez MFNETSOURCE_STATISTICS_IDS.
Exemples
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;
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
En-tête |
|
Voir aussi