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


Использование Windows Media со службами редактирования DirectShow

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

[Этот API не поддерживается и может быть изменен или недоступен в будущем.]

В этом разделе описывается использование содержимого на основе Windows Media в приложении DirectShow Editing Services (DES). Существует два сценария main:

  • Исходные клипы. Проект DES может содержать аудио- и видеоклипы из файлов Windows Media.
  • Целевой формат. Windows Media — это идеальный формат для окончательного вывода проекта редактирования видео.

Для работы с файлами Windows Media приложение должно предоставить сертификат программного обеспечения, также называемый ключом. Для этого реализуется объект поставщика ключей. Поставщик ключей — это COM-объект, который предоставляет интерфейс IServiceProvider . Сведения о реализации поставщика ключей см. в разделе Разблокировка пакета SDK для формата Windows Media.

Чтобы использовать DES с файлами Windows Media, для следующих объектов DES требуется программный ключ:

  • Модуль отрисовки для предварительного просмотра или записи файлов.

  • Объект MediaDet для получения видеокадров или типов мультимедиа из ФАЙЛОВ ASF.

  • Важно!

    Не используйте модуль интеллектуальной отрисовки для чтения или записи файлов Windows Media. Всегда используйте базовый обработчик отрисовки (CLSID_RenderEngine).

     

Чтобы предоставить объекту программный ключ, запросите этот объект для интерфейса IObjectWithSite и вызовите IObjectWithSite::SetSite с указателем на поставщика ключей. Например, следующий код предоставляет программный ключ для обработчика отрисовки:

// Create your key provider, using an application-defined function:
IServiceProvider *pKey;
hr = MyCreateKeyProviderFunction(&pKey);  

// Query the Render Engine for IObjectWithSite.
IObjectWithSite *pOWS;
hr = pRenderEngine->QueryInterface(__uuidof(IObjectWithSite), 
    reinterpret_cast<void**>(&pOWS));
if (SUCCEEDED(hr))
{
    // Give it your key provider.
    hr = pOWS->SetSite(pKey);
    pOWS->Release();
}
pKey->Release();

Чтобы использовать исходные клипы Windows Media в проекте DES, просто вызовите IObjectWithSite::SetSite в обработчике отрисовки с указателем на поставщика ключей.

Дополнительные сведения о написании файлов Windows Media см. в разделе Запись файла Windows Media в DES.

Использование служб редактирования DirectShow