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


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

[Функция, связанная с этой страницей, 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 текущая позиция увеличивается в два раза быстрее относительно эталонных часов.