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


Настройка скорости воспроизведения

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

Чтобы изменить частоту воспроизведения, вызовите метод IMediaSeeking::SetRate . Укажите новую ставку в виде доли исходной ставки. Например, чтобы играть с двойной нормальной скоростью, используйте следующее:

pSeek->SetRate(2.0)

Ставки больше единицы быстрее, чем обычно. Ставки от нуля до единицы медленнее, чем обычно. Отрицательные скорости определяются как обратное воспроизведение, но на практике большинство фильтров не поддерживают его. В настоящее время ни один из стандартных фильтров DirectShow не поддерживает обратное воспроизведение.

Независимо от скорости воспроизведения текущее положение и позиция остановки всегда выражаются относительно исходного источника. Например, если исходный файл имеет длину 20 секунд при нормальной скорости воспроизведения, установка текущей позиции в 10 секунд будет направлена на середину файла. Если скорость воспроизведения составляет 2,0, позиция остановки — 20 секунд и вы стремитесь к 10-секундной позиции, файл будет воспроизводиться в течение 5 секунд в режиме реального времени: 10 секунд, что вдвое превышает нормальную скорость воспроизведения. При частоте воспроизведения 2,0 текущее положение увеличивается в два раза больше, чем время отсчета.