Metode IAMStreamControl::StopAt (strmif.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 ini StopAt
menginformasikan pin kapan harus berhenti mengirimkan data.
Sintaks
HRESULT StopAt(
[in] const REFERENCE_TIME *ptStop,
[in] BOOL bSendExtra,
[in] DWORD dwCookie
);
Parameter
[in] ptStop
Penunjuk ke nilai REFERENCE_TIME yang menentukan kapan pin harus berhenti mengirimkan data. Jika nilainya adalah MAXLONGLONG (0x7FFFFFFFFFFFFFFF), metode membatalkan permintaan berhenti sebelumnya. Jika psStopNULL, pin akan segera berhenti.
Untuk pin pratinjau, hanya nilai NULL dan MAXLONGLONG yang valid, karena pin pratinjau tidak memberi stempel waktu pada sampel yang dikirimkan.
[in] bSendExtra
Menentukan nilai Boolean yang menunjukkan apakah akan mengirim sampel tambahan setelah waktu berhenti yang dijadwalkan. Jika TRUE, pin akan mengirimkan satu sampel tambahan.
[in] dwCookie
Menentukan nilai yang akan dikirim bersama dengan pemberitahuan mulai. Lihat Keterangan.
Mengembalikan nilai
Jika metode berhasil, nilai yang dikembalikan adalah S_OK. Jika tidak, mengembalikan nilai HRESULT yang menunjukkan penyebab kegagalan.
Keterangan
Jika parameter dwCookie bukan nol, pin akan mengirim peristiwa EC_STREAM_CONTROL_STOPPED ketika berhenti mengirimkan data. Parameter peristiwa pertama adalah penunjuk ke antarmuka IPin pin, dan yang kedua adalah nilai dwCookie. Jika ptStopadalah NULL atau MAXLONGLONG, tidak ada peristiwa yang dikirim, dan nilai dwCookie diabaikan.
Dalam pengambilan video, Anda biasanya akan memanggil metode ini pada pin output filter tangkapan dan pin input multiplexer. Aplikasi harus menunggu peristiwa berhenti dari multiplexer. Ini memastikan bahwa filter pengambilan mengirimkan jumlah bingkai yang tepat, sambil menjamin bahwa semua bingkai mencapai multiplexer. Selain itu, atur parameter bSendExtra ke TRUE untuk pin pengambilan, tetapi FALSE untuk pin multiplexer. Hal ini menyebabkan filter pengambilan mengirim satu bingkai tambahan. Multiplexer bergantung pada stempel waktu dari pin pengambilan, jadi jika bingkai tambahan tidak dikirim, multiplexer akan menunggu tanpa batas waktu untuk waktu berhenti. Ketika multiplexer menerima bingkai tambahan, ia akan membuangnya.
Metode ini menangani kondisi batas berikut:
- Jika waktu berhenti berada di antara waktu mulai dan berhenti sampel, pin akan memberikan sampel tersebut.
- Jika waktu mulai sama dengan waktu berhenti, pin akan mengirimkan satu sampel.
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 | strmif.h (termasuk Dshow.h) |
Pustaka | Strmiids.lib |