Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Считывает следующий пример из источника мультимедиа.
Синтаксис
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 |