METODE IMFMediaStream::RequestSample (mfidl.h)
Meminta sampel dari sumber media.
Sintaks
HRESULT RequestSample(
[in] IUnknown *pToken
);
Parameter
[in] pToken
Arahkan ke antarmuka IUnknown ke objek yang digunakan sebagai token untuk permintaan. Pemanggil harus mengimplementasikan objek ini. Parameter ini bisa NULL. Lihat Keterangan.
Mengembalikan nilai
Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil. |
|
Akhir aliran tercapai. |
|
Sumber media dihentikan. |
|
Metode Matikan sumber telah dipanggil. |
Keterangan
Jika pToken bukan NULL, aliran media memanggil AddRef di pToken dan menempatkan token dalam antrean pertama masuk dan keluar.
Saat sampel berikutnya tersedia, aliran media melakukan hal berikut:
- Menarik token pertama dari antrean.
- Mengatur atribut MFSampleExtension_Token pada sampel media. Data atribut adalah penunjuk ke objek token.
- Mengirim peristiwa MEMediaSample . Data peristiwa adalah penunjuk ke antarmuka IMFSample sampel media.
- Memanggil Rilis pada token.
Pemanggil harus memantau jumlah referensi pada token permintaan. Jika aliran media mengirim peristiwa MEMediaSample , dapatkan atribut MFSampleExtension_Token dari sampel dan cocokkan nilai atribut dengan token. Jika jumlah referensi token jatuh ke nol dan Anda tidak menerima peristiwa MEMediaSample, itu berarti bahwa permintaan dihilangkan.
Karena alur Media Foundation multithreaded, metode RequestSample sumber mungkin dipanggil setelah sumber berhenti. Jika sumber media dihentikan, metode harus mengembalikan MF_E_MEDIA_SOURCE_WRONGSTATE. Alur tidak memperlakukan kode pengembalian ini sebagai kondisi kesalahan. Jika sumber mengembalikan kode kesalahan lainnya, alur memperlakukannya sebagai kesalahan fatal dan menghentikan sesi.
Jika sumber media dijeda, metode berhasil, tetapi aliran tidak mengirimkan sampel sampai sumber dimulai lagi.
Jika sumber media mengalami kesalahan secara asinkron saat memproses data, sumber media harus memberi sinyal kesalahan dengan salah satu cara berikut (tetapi tidak keduanya):
- Mengembalikan kode kesalahan dari panggilan RequestSample berikutnya.
- Mengirim peristiwa MEError .
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | mfidl.h |
Pustaka | Mfuuid.lib |