Добрый день.
Программу использую в режиме случайного проигрывания основного плейлиста, который время от времени замещается (накладываются поверх) по расписанию заранее подготовленные программы.
Заметил, что изредка происходит запуск одного и того же трека подряд. При моделировании это можно заметить лишь при малых размерах плейлиста, на больших же поймать очень трудно (вероятность -> 0), но вот за четверо суток работы у меня в логах два дубля на ~450-трековом плейлисте... Для слушателя очень неприятно... А поэтому пожелание, в будущем оснастить программу защитой от проигрывания в режиме "случайного выбора" одного и того же трека или плейлиста два раза подряд.
Контроль можно проводить по имени файла (это позволит не допускать дублей даже тогда, когда в плейлисте несколько позиций с одним и тем же файлом) - при выборе следующего на прогрывание файла заглядывать в историю проигрываний (лог), и если там этот же файл, в пределах некоторой глубины истории от текущего момента, уже упоминался, сделать выбор другого файла (также, случайным образом).
При расчёте глубины истории следует по-видимому отталкиваться от половины количества уникальных позиций плейлиста, округлённого до ближайшего целого вниз, но не более, например XX треков или YYY минут времени (позволив задавать пользователю эти значения). Расчёт от половины количества позиций плейлиста будет работать на малых плейлистах, верхние ограничения XX и YYY - на больших.
Аналогично хотелось бы поступить и в случаях, когда в планировщике у меня в определённое время назначен эвент "выбрать случайный плейлист из папки", хочется, чтобы в этом случае также не было повторов, когда при последовательном плановом срабатывании одного и того же эвента выбирался один и тот же плейлист. (но здесь историю придётся хранить для каждого эвента отдельно, т.к. думаю, что контролировать разные эвенты на предмет пересечения всё-таки не нужно - это уже работа оператора).
Функция по-видимому должна работать только при случайном выборе, нужды в ней при последовательном воспроизведении лично я не вижу - тут всё уже на совести составителя плейлиста...
... и вдогонку: хочется также иметь функцию проверки плейлиста (Main и Temp) на дублирующиеся файлы. Вызов функции можно разместить в главном меню, и, возможно, продублировать на контекстное (по правой кнопке мыши). Найденные дубликаты подсвечивать. Придётся поломать голову, как при этом подсвечивать разные дубли - их может быть много....
p.s. Или это уже всё есть, а я просто не нашёл?..
Программу использую в режиме случайного проигрывания основного плейлиста, который время от времени замещается (накладываются поверх) по расписанию заранее подготовленные программы.
Заметил, что изредка происходит запуск одного и того же трека подряд. При моделировании это можно заметить лишь при малых размерах плейлиста, на больших же поймать очень трудно (вероятность -> 0), но вот за четверо суток работы у меня в логах два дубля на ~450-трековом плейлисте... Для слушателя очень неприятно... А поэтому пожелание, в будущем оснастить программу защитой от проигрывания в режиме "случайного выбора" одного и того же трека или плейлиста два раза подряд.
Контроль можно проводить по имени файла (это позволит не допускать дублей даже тогда, когда в плейлисте несколько позиций с одним и тем же файлом) - при выборе следующего на прогрывание файла заглядывать в историю проигрываний (лог), и если там этот же файл, в пределах некоторой глубины истории от текущего момента, уже упоминался, сделать выбор другого файла (также, случайным образом).
При расчёте глубины истории следует по-видимому отталкиваться от половины количества уникальных позиций плейлиста, округлённого до ближайшего целого вниз, но не более, например XX треков или YYY минут времени (позволив задавать пользователю эти значения). Расчёт от половины количества позиций плейлиста будет работать на малых плейлистах, верхние ограничения XX и YYY - на больших.
Аналогично хотелось бы поступить и в случаях, когда в планировщике у меня в определённое время назначен эвент "выбрать случайный плейлист из папки", хочется, чтобы в этом случае также не было повторов, когда при последовательном плановом срабатывании одного и того же эвента выбирался один и тот же плейлист. (но здесь историю придётся хранить для каждого эвента отдельно, т.к. думаю, что контролировать разные эвенты на предмет пересечения всё-таки не нужно - это уже работа оператора).
Функция по-видимому должна работать только при случайном выборе, нужды в ней при последовательном воспроизведении лично я не вижу - тут всё уже на совести составителя плейлиста...
... и вдогонку: хочется также иметь функцию проверки плейлиста (Main и Temp) на дублирующиеся файлы. Вызов функции можно разместить в главном меню, и, возможно, продублировать на контекстное (по правой кнопке мыши). Найденные дубликаты подсвечивать. Придётся поломать голову, как при этом подсвечивать разные дубли - их может быть много....
p.s. Или это уже всё есть, а я просто не нашёл?..