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


Метод IAMTimelineObj::SetStartStop

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

Примечание

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

 

Метод SetStartStop задает время начала и остановки объекта относительно родительского объекта.

Синтаксис

HRESULT SetStartStop(
   REFERENCE_TIME Start,
   REFERENCE_TIME Stop
);

Параметры

Запуск

Новое время начала в единицах 100 наносекунд или –1, чтобы сохранить существующее время начала.

Остановить

Новое время остановки в единицах 100 наносекунд или –1 для сохранения существующего времени остановки.

Возвращаемое значение

Возвращает одно из следующих значений HRESULT :

Код возврата Описание
S_OK
Успешно.
E_INVALIDARG
Недопустимый аргумент.
E_NOTIMPL
Не реализован.

 

Комментарии

Треки, композиции и группы не реализуют этот метод. Для этих объектов время начала всегда равно нулю, а время остановки — максимальное время остановки содержащихся в них объектов.

Не устанавливайте время перекрытия для исходных объектов в пределах одной дорожки. Это может привести к неопределенному поведению.

Для исходных объектов время запуска и остановки не зависит от времени запуска и остановки мультимедиа. Изменение одной пары значений не изменяет другую. Чтобы задать время запуска и остановки мультимедиа, вызовите метод IAMTimelineSrc::SetMediaTimes . Дополнительные сведения см. в разделе Время в службах редактирования DirectShow.

Чтобы получить точные обрезы и переходы, задайте для параметров Start и Stop границы кадра. Вы можете использовать метод IAMTimelineObj::FixTimes для преобразования значения времени в ближайшую границу кадра или использовать следующую функцию для преобразования из номера кадра в ссылочное время:

REFERENCE_TIME inline FrameNumToTime(LONGLONG frame, double fps)
{
    double dt = (frame * 10000000 / fps);
    if (frame >= 0) 
    {
        dt += 0.5;    }
    else
    {
        dt -= 0.5;
    }
    return (REFERENCE_TIME)dt;
}

Примечание

Файл заголовка Qedit.h несовместим с заголовками Direct3D более поздней версии 7.

 

Примечание

Чтобы получить Qedit.h, скачайте обновление Microsoft Windows SDK для Windows Vista и платформа .NET Framework 3.0. Qedit.h недоступен в Microsoft Windows SDK для Windows 7 и платформа .NET Framework 3.5 с пакетом обновления 1 (SP1).

 

Требования

Требование Значение
Заголовок
Qedit.h
Библиотека
Strmiids.lib

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

Интерфейс IAMTimelineObj

Коды ошибок и успешности