Bagikan melalui


Metode CBaseFilter.GetState

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

Metode mengambil GetState status filter (berjalan, dihentikan, atau dijeda). Metode ini mengimplementasikan metode IMediaFilter::GetState .

Sintaks

HRESULT GetState(
   DWORD        dwMilliSecsTimeout,
   FILTER_STATE *State
);

Parameter

dwMilliSecsTimeout

Interval waktu habis, dalam milidetik.

Provinsi

Pointer ke variabel yang menerima anggota jenis enumerasi FILTER_STATE , menunjukkan status filter.

Menampilkan nilai

Mengembalikan S_OK atau E_POINTER.

Keterangan

Di kelas dasar, semua transisi status sinkron dan parameter dwMilliSecsTimeout diabaikan. Jika kelas turunan melakukan transisi status asinkron, kelas tersebut harus mengambil alih metode ini untuk menunggu selama transisi status, dengan waktu habis dwMilliSecsTimeout milidetik.

Jika filter Anda tidak mengirimkan data saat dijeda, ganti GetState metode untuk mengembalikan nilai VFW_S_CANT_CUE saat filter dijeda (lihat Mengirimkan Sampel). Contohnya:

CMyFilter::GetState(DWORD dw, FILTER_STATE *pState)
{
    CheckPointer(pState, E_POINTER);
    *pState = m_State;
    if (m_State == State_Paused)
        return VFW_S_CANT_CUE;
    else
        return S_OK;
}

Persyaratan

Persyaratan Nilai
Header
Amfilter.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)

Lihat juga

Kelas CBaseFilter