Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Считывает следующий пример из источника мультимедиа.
Синтаксис
HRESULT ReadSample(
[in] DWORD dwStreamIndex,
[in] DWORD dwControlFlags,
[out] DWORD *pdwActualStreamIndex,
[out] DWORD *pdwStreamFlags,
[out] LONGLONG *pllTimestamp,
[out] IMFSample **ppSample
);
Параметры
[in] dwStreamIndex
Поток для извлечения данных. Значение может быть любым из следующих значений.
[in] dwControlFlags
Битовая или более нулевая или более флагов из перечисления MF_SOURCE_READER_CONTROL_FLAG .
[out] pdwActualStreamIndex
Получает отсчитываемый от нуля индекс потока.
[out] pdwStreamFlags
Получает битовую или более нулевых флагов из перечисления MF_SOURCE_READER_FLAG .
[out] pllTimestamp
Получает метку времени примера или время события потока, указанного в pdwStreamFlags. Время задается в 100-наносекундах единиц.
[out] ppSample
Получает указатель на интерфейс МВФSample или значение NULL (см. примечания). Если этот параметр получает указатель, отличный от NULL , вызывающий объект должен освободить интерфейс.
Возвращаемое значение
Метод возвращает HRESULT. Возможные значения включают, но не ограничиваются ими в следующей таблице.
| Код возврата | Description |
|---|---|
|
Метод выполнен успешно. |
|
Недопустимый запрос. |
|
Недопустимый параметр dwStreamIndex . |
|
Операция очистки ожидается. См. статью МВФSourceReader::Flush. |
|
Недопустимый аргумент. См. раздел "Замечания". |
Замечания
Если запрошенный поток не выбран, код возврата MF_E_INVALIDREQUEST. См. раздел МВФSourceReader::SetStreamSelection.
Этот метод может выполняться синхронно или асинхронно. Если вы предоставляете указатель обратного вызова при создании средства чтения источника, метод асинхронен. В противном случае метод синхронен. Дополнительные сведения о настройке указателя обратного вызова см. в MF_SOURCE_READER_ASYNC_CALLBACK.
Асинхронный режим
В асинхронном режиме:-
[out]Все параметры должны иметь значение NULL. В противном случае метод возвращает E_INVALIDARG. - Метод возвращается немедленно.
- После завершения операции вызывается метод МВФSourceReaderCallback::OnReadSample приложения.
- Если возникает ошибка, метод может завершиться синхронно или асинхронно. Проверьте возвращаемое значение ReadSample, а также проверьте параметр hrStatusМВФSourceReaderCallback::OnReadSample.
Синхронный режим
В синхронном режиме:- Параметры pdwStreamFlags и ppSample не могут иметь значение NULL. В противном случае метод возвращает E_POINTER.
- Параметры pdwActualStreamIndex и pllTimestamp могут иметь значение NULL.
- Метод блокируется до тех пор, пока не будет доступен следующий пример.
Этот метод может возвращать флаги в параметре pdwStreamFlags без возврата примера носителя в ppSample. Поэтому параметр ppSample может получить указатель NULL даже при успешном выполнении метода. Например, когда средство чтения источника достигает конца потока, он возвращает флаг MF_SOURCE_READERF_ENDOFSTREAM в pdwStreamFlags и задает ppSample значение NULL.
Если в потоке есть пробел, pdwStreamFlags получает флаг MF_SOURCE_READERF_STREAMTICK, ppSample имеет значение NULL, а pllTimestamp указывает время, когда произошел разрыв.
Этот интерфейс доступен в Windows Vista, если установлено дополнение к обновлению платформы для Windows Vista.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Дополнение к Обновлению Windows 7, Windows Vista и платформы для Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 R2 [классические приложения | Приложения UWP] |
| целевая платформа | Виндоус |
| Header | mfreadwrite.h |