Bagikan melalui


Cara Mendapatkan Durasi Pemutaran

[Fitur yang terkait dengan halaman ini, MFPlay, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer dan IMFMediaEngine. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer dan IMFMediaEngine alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Topik ini menjelaskan cara mendapatkan durasi pemutaran file media menggunakan MFPlay.

Untuk Mendapatkan Durasi Pemutaran

  1. Panggil IMFPMediaPlayer::CreateMediaItemFromURL atau IMFPMediaPlayer::CreateMediaItemFromObject untuk membuat item media untuk file tersebut.
  2. Hubungi IMFPMediaItem::GetDuration. Tentukan MFP_POSITIONTYPE_100NS untuk parameter pertama. Durasi dikembalikan sebagai PROPVARIANT yang berisi nilai LARGE_INTEGER . Durasi diberikan dalam 100 unit nanodetik.

Contoh berikut menunjukkan langkah 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;
}

Persyaratan

MFPlay memerlukan Windows 7.

Menggunakan MFPlay untuk Pemutaran Audio/Video