Добавление источника
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
[Этот API не поддерживается и может быть изменен или недоступен в будущем.]
Создайте исходный объект так же, как и другие объекты временная шкала. Однако перед вставлять его в временная шкала необходимо указать по крайней мере следующие свойства источника.
- Время начала и остановки относительно временная шкала. Вызовите метод IAMTimelineObj::SetStartStop .
- Файл мультимедиа, используемый в качестве источника. Вызовите метод IAMTimelineSrc::SetMediaName с строкой расширенных символов, представляющей имя файла.
- Время запуска и остановки носителя, которое относится к исходному файлу. Вызовите метод IAMTimelineSrc::SetMediaTimes . Дополнительные сведения о времени мультимедиа см. в разделе Время в службах редактирования DirectShow.
В следующем примере исходный клип начинается через четыре секунды в файл. Длительность носителя составляет 10 секунд, что в два раза больше продолжительности временная шкала, то есть источник будет играть на двойной нормальной скорости. Константная UNITS определяется как 100000000 (10^7) и равна одной секунде.
pSourceObj->SetStartStop(0, 50000000)
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.avi"), 15);
pSource->SetMediaName(bstrFile);
SysFreeString(bstrFile);
pSource->SetMediaTimes(40000000, 140000000);
Примечание
В настоящее время DES не может одновременно отображать более 75 источников, сжатых с помощью кодеков диспетчера сжатия видео (VCM). Кроме того, если проект в целом содержит более 75 таких источников, необходимо использовать динамическое повторное подключение, иначе DES не сможет предварительно просмотреть проект. Дополнительные сведения см. в разделе IRenderEngine::SetDynamicReconnectLevel.
Дополнительные сведения об источниках см. в разделе Работа с источниками.
Связанные темы