Описание проблемы:
Если включена опция "Разблокировать устройство во время ожидания", то при приостановке воспроизведения, само звуковое устройство не может разблокироваться (освободиться) вовремя, а продолжает оставаться заблокированным (занятым). Это очень легко проверить, запустив параллельно еще одну сессию с любым произвольным видео, или аудио файлом, что в конечном итоге приводит к полному отсутствию звука. А если он и появляется, то возникает рассинхрон.
Алгоритм воспроизведения:
1. Запустить первую сессию с любым произвольным видео, или аудио файлом в режиме WASAPI Exclusive, со включенной опцией "Разблокировать устройство во время ожидания".
2. Запустить вторую (новую) сессию с любым произвольным видео, или аудио файлом.
3. Поставить воспроизводимый видео, или аудио файл в первой сессии в режим "Пауза".
4. Вернуться ко второй сессии, в которой продолжается воспроизведение любого произвольного видео, или аудио файла.
Фактический результат:
После приостановки воспроизведения в первой сессии, звук во второй сессии не появляется, хотя должен, так как изначально (первоначально) была включена соответствующая опция "Разблокировать устройство во время ожидания".
Он появится лишь в том случае, если приостановить воспроизведение во второй сессии, а затем заново возобновить его, но это уже некорректное поведение и работа, поскольку в этом случае может быть рассинхрон и он есть на самом деле.
Ожидаемый результат:
После приостановки воспроизведения в первой сессии, звук во второй сессии должен сразу же появляться без всякого рассинхрона и задержки, причем неважно шло в ней (второй сессии) воспроизведение, или же было приостановлено.
P.S.
Данный баг является очередной поломкой, поскольку раньше, при данной опции, звук сразу же возвращался.
Покажи фильтры во второй сессии.
По идее там должен быть DSound вывод. Если так - то какие вопросы то к нам.
Aleksoid1978,
Цитата: Aleksoid1978 от 14 октября 2021, 10:03:47
Покажи фильтры во второй сессии.
По идее там должен быть DSound вывод. Если так - то какие вопросы то к нам.
Все верно, там у меня как раз этот DirectSound. Но проблема не в этом, а в том, что звуковое устройство не освобождается строго после установки воспроизведения в режим "Пауза" в первой сессии. Это просто для примера я вам привел вторую сессию. Обычно я, например, первоначально проверял таким образом - первая сессия нашего плеера в режиме WASAPI Exclusive, а в качестве параллельно запущенной выступал сам браузер с HTML5-плеером. Я точно помню, что раньше звук моментально возвращался, как только я освобождал звуковое устройство, поставив видео на паузу в основной первой сессии, т.е. там, где используется именно режим WASAPI Exclusive. Сейчас звук или возвращается с опозданием, или его просто нет, даже после освобождения звукового устройства. Вот в чем суть. Т.е. в качестве второй сессии необязательно может выступать именно наш плеер, это может быть любая программа, которая умеет воспроизводить видео, или аудио.
Таймаут в 3 секунды, так было всегда(изначально). Ибо в DirectShow нет возможности отличить паузу от перемотки.