OSD: Local Time - за пределами окна плеера на Windows 7 [Исправлено]

Автор Evgeniy1990, 12 ноября 2020, 22:32:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Evgeniy1990

Алгоритм воспроизведения:

1. Открыть плеер
2. Открыть любой файл
3. Нажать на горячую клавишу "I" во время воспроизведения файла
4. Свернуть и сразу же развернуть плеер
5. Закрыть воспроизводимый файл
6. Свернуть и сразу же развернуть плеер

Фактический результат:

После выполнения данных действий, "OSD: Local Time" уйдет за пределы основного окна плеера.

Ожидаемый результат:

После выполнения данных действий, "OSD: Local Time" вообще не должно отображаться, так как воспроизводимый файл был уже закрыт.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

Подтверждаю. OSD вновь появляется при развороте окна пустого плеера, и при этом остается на месте при перемещении окна плеера.

Aleksoid1978

AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Aleksoid1978

AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
ЦитироватьА если так - https://yadi.sk/d/mbWv4SyUHn03FA
Проверил тестовый билд. Теперь, вместо "OSD: Local Time", отображается просто OSD "Stop" за пределами основного окна плеера.
Вы движетесь в верном направлении, только по идее (по логике), никаких OSD повторно отображаться не должно, тем более за пределами основного окна плеера. У вас практически получилось исправить проблему. Еще подкорректируйте, пожалуйста.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
ЦитироватьМожно записать видео всего процесса.
Пожалуйста.

Сделал для вас краткую видеозапись всего процесса. Все строго по алгоритму, описанному в первом посте.
Чтобы у вас не возникло лишних вопросов, я скажу вам сразу, что на данной видеозаписи у меня уже было включено "OSD: Local Time".
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

А если после такого сдвинуть окно - восстановиться положение OSD ?
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Aleksoid1978

#8
Вот еще пробуем - https://yadi.sk/d/ihYp6FyRw43BFg
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
ЦитироватьА если после такого сдвинуть окно - восстановиться положение OSD ?
Нет. Положение OSD не восстановится.

Aleksoid1978,
ЦитироватьВот еще пробуем - https://yadi.sk/d/ihYp6FyRw43BFg
Проверил второй тестовый билд. Теперь полный порядок.
Проблема устранена. :)
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Ну погоняй его ещё немного по всякому, все ли будет корректно с ОСД. Помню ещё были какие то случаи когда за окно уезжало.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
ЦитироватьНу погоняй его ещё немного по всякому, все ли будет корректно с ОСД. Помню ещё были какие то случаи когда за окно уезжало.
Прогнал немного второй тестовый билд. Проверил всевозможные имеющиеся OSD. Все они отрабатывают корректно, не выходят за пределы основного окна плеера, при данном алгоритме воспроизведения.

При сравнении с SVN-билдом, заметил, что в вашем тестовом билде, при ПКМ на долю секунды выскакивает OSD: Stop, хотя по логике должно быть OSD: Closed и оно не должно отображаться долю секунды, а должно отображаться несколько подольше, чтобы его можно было успеть прочитать, но это уже совсем другая история и об этом далее...

А вот если говорить про взаимодействия различных OSD друг с другом, то тут далеко не все в порядке. Но, не путайте! Это не имеет никакого отношения к первоначальной проблеме, описанной в первом посте.

Что значит взаимодействия различных OSD друг с другом?
Дело в том, что сейчас различные OSD "конфликтуют" друг с другом. Если выразиться иначе, то одно OSD мешает отображению другого OSD, при определенных условиях.

И вот вам пример - допустим, у нас включено "OSD: Local Time" и во время воспроизведения произвольного видео файла мы перематываем его несколько раз. Во время перемотки, по логике, "OSD: Local Time" должно переключаться на "OSD: Show seek time", а после перемотки должно обратно возвращаться на "OSD: Local Time". Но, по факту, этого не происходит.
Получается, что "OSD: Local Time" не дает возможности отобразиться "OSD: Show seek time". Или можно предположить, что оно ("OSD: Local Time") перекрывает отображение "OSD: Show seek time", так как является приоритетным.

И это только один из всевозможных примеров "конфликтов" различных OSD. А их далеко не один...

Другим примером может служить время отображения различных OSD. Например, возьмем все то же "OSD: Local Time".
Во время воспроизведения мы меняем громкость, неважно выше, или ниже, главное что OSD с уровнем громкости, при "OSD: Local Time", присутствует лишь доли секунды и лишь едва удается его рассмотреть и прочитать. И это еще одна проблема.
То есть, при взаимодействии различных OSD между собой, при определенных условиях, необходимо продлить время их показа, т.е. их отображения.

Как вы уже поняли, подобных различных примеров предостаточно. Хватит на "целую поэму".

Aleksoid1978, в свое время, когда вы занимались глобальными переделками OSD, вы почему-то, или по какой-то причине не учли все вот эти моменты взаимодействия различных OSD друг с другом, при определенных условиях. Только не подумайте, что я сейчас вас в этом обвиняю, вовсе нет. Возможно, вы просто о них не знали, или же не были в курсе.

В результате чего, сейчас происходит так называемое доминирование одного OSD над другим. Иначе говоря, какое OSD было включено первоначально, то и будет в приоритете, т.е. будет доминирующим. Остальные же OSD или вообще не будут отображаться, при тех, или иных условиях, или же будут отображаться, но только лишь на какие-то жалкие доли секунды.

Теперь то, надеюсь, вы окончательно поняли суть проблемы взаимодействия различных OSD друг с другом. А ведь это довольно обширная тема, которая в свое время даже не была рассмотрена, проверена и учтена, при глобальной переделке OSD.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

#12
По поводу "OSD: Stop" - ну сперва же срабатывает команда стоп, а потом закрытие файла(при этом OSD "обнуляется") - поэтому оно и мелькает. Если оно будет "лишнее" - можно будет со временем и убрать.

По поводу "перекрытия" сообщений в OSD все проще - те что показываются все время, они просто выводят свою информацию по таймеру, вот и получается что когда срабатывает таймер, эти сообщения выводятся "опять", ессно текущие сообщения в OSD затираются. Чтобы этого избежать - надо "думать" :). Но такое поведение было всегда - т.к. сам принцип формирования/вывода сообщений не менялся.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215