Интерфейс IMediaSample (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Интерфейс IMediaSample
задает и извлекает свойства примеров мультимедиа. Пример мультимедиа — это COM-объект, содержащий блок данных мультимедиа. Примеры мультимедиа поддерживают использование буферов общей памяти между фильтрами.
Как правило, приложения не вызывают методы в этом интерфейсе. Фильтры используют этот интерфейс для задания свойств примеров и доставки примеров в подчиненный фильтр. Нижестоящий фильтр использует интерфейс для получения свойств и чтения данных. Фильтр может изменить данные на месте или скопировать пример, изменить копию и передать копию ниже.
Интерфейс IMediaSample2 наследует этот интерфейс.
Наследование
Интерфейс IMediaSample наследуется от интерфейса IUnknown . IMediaSample также имеет следующие типы элементов:
Методы
Интерфейс IMediaSample содержит следующие методы.
IMediaSample::GetActualDataLength Метод GetActualDataLength извлекает длину допустимых данных в буфере. |
IMediaSample::GetMediaTime Метод GetMediaTime извлекает время мультимедиа для этого примера. |
IMediaSample::GetMediaType Метод GetMediaType извлекает тип мультимедиа, если тип носителя отличается от предыдущего примера. |
IMediaSample::GetPointer Метод GetPointer извлекает указатель на чтение и запись на буфер примера мультимедиа. |
IMediaSample::GetSize Метод GetSize извлекает размер буфера. |
IMediaSample::GetTime Метод GetTime извлекает время потока, когда этот пример должен начинаться и заканчиваться. |
IMediaSample::IsDiscontinuity Метод IsDiscontinuity определяет, представляет ли этот пример разрыв в потоке данных. |
IMediaSample::IsPreroll Метод IsPreroll определяет, является ли этот пример предварительной. Не следует отображать пример предварительной версии. |
IMediaSample::IsSyncPoint Метод IsSyncPoint определяет, является ли начало этого примера точкой синхронизации. |
IMediaSample::SetActualDataLength Метод SetActualDataLength задает длину допустимых данных в буфере. |
IMediaSample::SetDiscontinuity Метод SetDiscontinuity указывает, представляет ли этот пример разрыв в потоке данных. |
IMediaSample::SetMediaTime Метод SetMediaTime задает время мультимедиа для этого примера. |
IMediaSample::SetMediaType Метод SetMediaType задает тип носителя для примера. |
IMediaSample::SetPreroll Метод SetPreroll указывает, является ли этот пример примером предварительного создания. |
IMediaSample::SetSyncPoint Метод SetSyncPoint указывает, является ли начало этого примера точкой синхронизации. |
IMediaSample::SetTime Метод SetTime задает время потока, когда этот пример должен начинаться и заканчиваться. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |