Использование 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.
Связанные темы