Поделиться через


Интерфейс 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)