Metode CBaseRenderer.Receive
[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 Receive
ini menerima sampel media berikutnya dalam aliran.
Sintaks
virtual Receive(
IMediaSample *pMediaSample
);
Parameter
-
pMediaSample
-
Arahkan ke antarmuka IMediaSample sampel.
Nilai kembali
Mengembalikan S_OK jika berhasil, atau nilai HRESULT yang menunjukkan penyebab kesalahan.
Keterangan
Pin input memanggil metode ini ketika menerima sampel dari filter upstram.
Jika filter berjalan, metode ini melakukan langkah-langkah berikut:
- Menjadwalkan sampel untuk penyajian (CBaseRenderer::P repareReceive).
- Menunggu waktu yang dijadwalkan (CBaseRenderer::WaitForRenderTime).
- Merender sampel (CBaseRenderer::Render).
- Merilis sampel (CBaseRenderer::ClearPendingSample).
Jika filter dijeda, metode melakukan langkah-langkah berikut:
- Memberi tahu kelas turunan bahwa sampel tersedia (CBaseRenderer::OnReceiveFirstSample).
- Menunggu waktu yang dijadwalkan.
- Merender sampel.
- Merilis sampel.
Saat dijeda, metode menunggu di langkah 2 hingga filter beralih ke status berjalan. Pada saat itu, filter menjadwalkan sampel.
Di kelas dasar, metode OnReceiveFirstSample tidak melakukan apa pun. Kelas turunan dapat mengambil alihnya. Misalnya, saat perender video dijeda, perender video menampilkan sampel pertama sebagai gambar diam.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|