Come ottenere la durata della riproduzione
[La funzionalità associata a questa pagina, MFPlay, è una funzionalità legacy. È stato sostituito da MediaPlayer e IMFMediaEngine. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer e IMFMediaEngine invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Questo argomento descrive come ottenere la durata di riproduzione di un file multimediale usando MFPlay.
Per ottenere la durata della riproduzione
- Chiama IMFPMediaPlayer::CreateMediaItemFromURL o IMFPMediaPlayer::CreateMediaItemFromObject per creare un elemento multimediale per il file.
- Chiamare IMFPMediaItem::GetDuration. Specificare MFP_POSITIONTYPE_100NS per il primo parametro. La durata viene restituita come PROPVARIANT che contiene un valore LARGE_INTEGER . La durata viene specificata in unità da 100 nanosecondi.
L'esempio seguente illustra il passaggio 2:
#include <propvarutil.h>
HRESULT GetPlaybackDuration(IMFPMediaItem *pItem, ULONGLONG *phnsDuration)
{
PROPVARIANT var;
HRESULT hr = pItem->GetDuration(MFP_POSITIONTYPE_100NS, &var);
if (SUCCEEDED(hr))
{
hr = PropVariantToUInt64(var, phnsDuration);
PropVariantClear(&var);
}
return hr;
}
Requisiti
MFPlay richiede Windows 7.
Argomenti correlati