Metode IMFSourceReader::ReadSample (mfreadwrite.h)
Membaca sampel berikutnya dari sumber media.
Sintaks
HRESULT ReadSample(
[in] DWORD dwStreamIndex,
[in] DWORD dwControlFlags,
[out] DWORD *pdwActualStreamIndex,
[out] DWORD *pdwStreamFlags,
[out] LONGLONG *pllTimestamp,
[out] IMFSample **ppSample
);
Parameter
[in] dwStreamIndex
Aliran untuk menarik data dari. Nilainya bisa salah satu dari yang berikut ini.
[in] dwControlFlags
Bitwise ATAU nol atau lebih bendera dari enumerasi MF_SOURCE_READER_CONTROL_FLAG .
[out] pdwActualStreamIndex
Menerima indeks aliran berbasis nol.
[out] pdwStreamFlags
Menerima bendera bitwise OR nol atau lebih dari enumerasi MF_SOURCE_READER_FLAG .
[out] pllTimestamp
Menerima stempel waktu sampel, atau waktu peristiwa streaming yang ditunjukkan dalam pdwStreamFlags. Waktu diberikan dalam unit 100 nanodetik.
[out] ppSample
Menerima penunjuk ke antarmuka IMFSample atau nilai NULL (lihat Keterangan). Jika parameter ini menerima penunjuk non-NULL , pemanggil harus merilis antarmuka.
Mengembalikan nilai
Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil. |
|
Permintaan tidak valid. |
|
Parameter dwStreamIndex tidak valid. |
|
Operasi flush tertunda. Lihat IMFSourceReader::Flush. |
|
Argumen tidak valid. Lihat Keterangan. |
Keterangan
Jika aliran yang diminta tidak dipilih, kode pengembalian akan MF_E_INVALIDREQUEST. Lihat IMFSourceReader::SetStreamSelection.
Metode ini dapat diselesaikan secara sinkron atau asinkron. Jika Anda memberikan penunjuk panggilan balik saat Anda membuat pembaca sumber, metode ini tidak sinkron. Jika tidak, metode ini sinkron. Untuk informasi selengkapnya tentang mengatur penunjuk panggilan balik, lihat MF_SOURCE_READER_ASYNC_CALLBACK.
Mode Asinkron
Dalam mode asinkron:[out]
Semua parameter harus NULL. Jika tidak, metode mengembalikan E_INVALIDARG.- Metode ini segera kembali.
- Ketika operasi selesai, metode IMFSourceReaderCallback::OnReadSample aplikasi dipanggil.
- Jika terjadi kesalahan, metode dapat gagal baik secara sinkron atau asinkron. Periksa nilai hasil ReadSample, dan periksa juga parameter hrStatusIMFSourceReaderCallback::OnReadSample.
Mode Sinkron
Dalam mode sinkron:- Parameter pdwStreamFlags dan ppSample tidak boleh NULL. Jika tidak, metode mengembalikan E_POINTER.
- Parameter pdwActualStreamIndex dan pllTimestamp dapat berupa NULL.
- Metode memblokir hingga sampel berikutnya tersedia.
Metode ini dapat mengembalikan bendera dalam parameter pdwStreamFlags tanpa mengembalikan sampel media di ppSample. Oleh karena itu, parameter ppSample dapat menerima pointer NULL bahkan ketika metode berhasil. Misalnya, ketika pembaca sumber mencapai akhir aliran, ia mengembalikan bendera MF_SOURCE_READERF_ENDOFSTREAM di pdwStreamFlags dan mengatur ppSample ke NULL.
Jika ada celah dalam aliran, pdwStreamFlags menerima bendera MF_SOURCE_READERF_STREAMTICK, ppSample adalah NULL, dan pllTimestamp menunjukkan waktu ketika celah terjadi.
Antarmuka ini tersedia di Windows Vista jika Suplemen Pembaruan Platform untuk Windows Vista diinstal.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7, Windows Vista, dan Suplemen Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | mfreadwrite.h |
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