Метод IMFPMediaPlayer::CreateMediaItemFromObject (mfplay.h)
Создает элемент мультимедиа из объекта .
Синтаксис
HRESULT CreateMediaItemFromObject(
[in] IUnknown *pIUnknownObj,
[in] BOOL fSync,
[in] DWORD_PTR dwUserData,
[out] IMFPMediaItem **ppMediaItem
);
Параметры
[in] pIUnknownObj
Указатель на интерфейс IUnknown объекта. См. заметки.
[in] fSync
Если значение РАВНО TRUE, метод блокируется до завершения. Если значение РАВНО FALSE, метод не блокируется и завершается асинхронно.
[in] dwUserData
Определяемое приложением значение для хранения в элементе мультимедиа. Чтобы получить это значение из элемента мультимедиа, вызовите IMFPMediaItem::GetUserData.
[out] ppMediaItem
Получает указатель на интерфейс IMFPMediaItem . Вызывающий объект должен освободить интерфейс . Если fSync имеет значение TRUE, этот параметр должен быть допустимым указателем. Если параметр bSync имеет значение FALSE, этот параметр должен иметь значение NULL.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Недопустимый аргумент. |
|
Недопустимый запрос. Эта ошибка может возникать, если fSync имеет значение FALSE и приложение не предоставило интерфейс обратного вызова. См. заметки. |
|
Был вызван метод Shutdown объекта . |
Комментарии
Параметр pIUnknownObj должен указывать одно из следующих значений:
- Указатель на источник мультимедиа. Источники средств массовой информации предоставляют интерфейс IMFMediaSource . Вызывающий абонент несет ответственность за вызов IMFMediaSource::Shutdown в источнике сми.
- Указатель на поток байтов. Потоки байтов предоставляют интерфейс IMFByteStream . На внутреннем сервере метод вызывает метод IMFSourceResolver::CreateObjectFromByteStream для создания источника мультимедиа из потока байтов. Поэтому обработчик байтового потока должен быть зарегистрирован для потока байтов. Дополнительные сведения об обработчиках потока байтов см. в разделе Обработчики схемы и обработчики Byte-Stream.
Метод CreateMediaItemFromObject можно вызывать синхронно или асинхронно:
- Если fSync имеет значение TRUE, метод завершается синхронно. Указатель IMFPMediaItem возвращается в параметре ppMediaItem .
- Если fSync имеет значение FALSE, метод завершается асинхронно. После завершения операции вызывается метод обратного вызова ПРИЛОЖЕНИЯ IMFPMediaPlayerCallback::OnMediaPlayerEvent . Тип события — MFP_EVENT_TYPE_MEDIAITEM_CREATED. Данные события содержат указатель IMFPMediaItem для нового элемента мультимедиа.
При выполнении нескольких асинхронных вызовов CreateMediaItemFromObject они не гарантированно будут выполнены в одном и том же порядке. Используйте параметр dwUserData для сопоставления созданных элементов мультимедиа с ожидающих запросов.
Настройка источника
Если pIUnknownObj указывает на поток байтов, можно настроить источник мультимедиа, выполнив следующие действия.- Вызовите QueryInterface для указателя IMFPMediaPlayer , чтобы получить интерфейс IPropertyStore .
- Вызовите метод IPropertyStore::SetValue , чтобы задать свойства для источника мультимедиа. Список свойств конфигурации см. в разделе Настройка источника мультимедиа. Сторонние источники мультимедиа могут определять пользовательские свойства.
- Вызовите метод CreateMediaItemFromObject , чтобы создать элемент мультимедиа.
Требования
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | mfplay.h |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по