Метод IMFPMediaPlayer::CreateMediaItemFromObject (mfplay.h)

Важно Устаревшие. Этот API может быть удален из будущих выпусков Windows. Приложения должны использовать сеанс мультимедиа для воспроизведения.
 

Создает элемент мультимедиа из объекта .

Синтаксис

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

Код возврата Описание
S_OK
Метод выполнен успешно.
E_INVALIDARG
Недопустимый аргумент.
MF_E_INVALIDREQUEST
Недопустимый запрос. Эта ошибка может возникать, если fSync имеет значение FALSE и приложение не предоставило интерфейс обратного вызова. См. заметки.
MF_E_SHUTDOWN
Был вызван метод Shutdown объекта .

Комментарии

Параметр pIUnknownObj должен указывать одно из следующих значений:

  • Указатель на источник мультимедиа. Источники средств массовой информации предоставляют интерфейс IMFMediaSource . Вызывающий абонент несет ответственность за вызов IMFMediaSource::Shutdown в источнике сми.
  • Указатель на поток байтов. Потоки байтов предоставляют интерфейс IMFByteStream . На внутреннем сервере метод вызывает метод IMFSourceResolver::CreateObjectFromByteStream для создания источника мультимедиа из потока байтов. Поэтому обработчик байтового потока должен быть зарегистрирован для потока байтов. Дополнительные сведения об обработчиках потока байтов см. в разделе Обработчики схемы и обработчики Byte-Stream.
Этот метод не ставит элемент мультимедиа в очередь для воспроизведения. Чтобы поместить элемент в очередь для воспроизведения, вызовите IMFPMediaPlayer::SetMediaItem.

Метод CreateMediaItemFromObject можно вызывать синхронно или асинхронно:

  • Если fSync имеет значение TRUE, метод завершается синхронно. Указатель IMFPMediaItem возвращается в параметре ppMediaItem .
  • Если fSync имеет значение FALSE, метод завершается асинхронно. После завершения операции вызывается метод обратного вызова ПРИЛОЖЕНИЯ IMFPMediaPlayerCallback::OnMediaPlayerEvent . Тип события — MFP_EVENT_TYPE_MEDIAITEM_CREATED. Данные события содержат указатель IMFPMediaItem для нового элемента мультимедиа.
Интерфейс обратного вызова задается при первом вызове MFPCreateMediaPlayer для создания объекта проигрывателя MFPlay. Если интерфейс обратного вызова не указан, параметр fSync должен иметь значение TRUE. В противном случае CreateMediaItemFromObject возвращает MF_E_INVALIDREQUEST.

При выполнении нескольких асинхронных вызовов CreateMediaItemFromObject они не гарантированно будут выполнены в одном и том же порядке. Используйте параметр dwUserData для сопоставления созданных элементов мультимедиа с ожидающих запросов.

Настройка источника

Если pIUnknownObj указывает на поток байтов, можно настроить источник мультимедиа, выполнив следующие действия.
  1. Вызовите QueryInterface для указателя IMFPMediaPlayer , чтобы получить интерфейс IPropertyStore .
  2. Вызовите метод IPropertyStore::SetValue , чтобы задать свойства для источника мультимедиа. Список свойств конфигурации см. в разделе Настройка источника мультимедиа. Сторонние источники мультимедиа могут определять пользовательские свойства.
  3. Вызовите метод CreateMediaItemFromObject , чтобы создать элемент мультимедиа.
Если pIUnknownObj указывает на источник мультимедиа, вы можете настроить источник во время его создания.

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header mfplay.h

См. также раздел

IMFPMediaPlayer

Использование MFPlay для воспроизведения звука и видео