IMediaControl::Metode GetState (control.h)
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan 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 Audio/Video Capture 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 grafik filter—dijeda, berjalan, atau dihentikan.
Transisi status belum tentu sinkron. Oleh karena itu, ketika Anda memanggil metode ini, grafik filter mungkin dalam transisi ke status baru. Dalam hal ini, metode memblokir hingga transisi selesai atau sampai waktu habis yang ditentukan berlalu.
Sintaks
HRESULT GetState(
[in] LONG msTimeout,
[out] OAFilterState *pfs
);
Parameter
[in] msTimeout
Durasi waktu habis, dalam milidetik, atau INFINITE untuk menentukan batas waktu tak terbatas.
[out] pfs
Menerima anggota enumerasi FILTER_STATE .
Nilai kembali
Mengembalikan nilai HRESULT . Nilai yang mungkin termasuk yang berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
Berhasil. |
|
Grafik filter masih dalam transisi ke status yang ditunjukkan. |
|
Grafik filter dijeda, tetapi tidak dapat memisahkan data. |
|
Kegagalan. |
Keterangan
Aplikasi dapat menggunakan metode ini untuk menentukan apakah pemutaran telah dimulai setelah panggilan ke IMediaControl::Run. Umumnya, aplikasi harus memiliki mekanisme sendiri untuk melacak status mana yang telah mereka masukkan ke dalam grafik filter. Aplikasi biasanya menggunakan status saat ini untuk menentukan kontrol antarmuka pengguna mana yang diaktifkan atau dinonaktifkan. Misalnya, setelah grafik masuk ke status berjalan, aplikasi mungkin menonaktifkan tombol "Putar" dan mengaktifkan tombol "Hentikan" dan "Jeda".
Jika grafik filter dalam transisi ke status baru, status yang dikembalikan adalah status baru, bukan status sebelumnya.
Metode ini mengembalikan kesalahan jika ada panggilan pada utas lain untuk mengubah status saat metode ini diblokir.
Hindari menentukan batas waktu INFINITE, karena utas tidak dapat memproses pesan saat menunggu di GetState
. Jika Anda memanggil GetState
dari utas yang memproses pesan Windows, tentukan waktu tunggu kecil pada panggilan agar tetap responsif terhadap input pengguna. Ini sangat penting ketika sumber mengalir melalui jaringan atau dari Internet karena transisi status di lingkungan ini dapat memakan waktu lebih lama untuk diselesaikan secara signifikan.
Enumerasi FILTER_STATE . Anda dapat melemparkan variabel sebagai berikut:
FILTER_STATE fs;
hr = pControl->GetState(msTimeOut, (OAFilterState*)&fs);
Untuk informasi selengkapnya tentang status grafik filter, lihat Status Filter.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | control.h (termasuk Dshow.h) |
Pustaka | Strmiids.lib |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk