У меня есть база данных MySQL, в которой хранятся все мои треки и связанная с ними информация. Одна из таблиц в базе данных — это таблица очереди, из которой я извлекаю дорожку для воспроизведения Liquidsoap. Я предоставляю эти треки для воспроизведения с Liquidsoap, используя request.dynamic.list.
def get_track() =
# Get the first line of my external process
result = list.hd(default="", get_process_lines(scripts ^ "get_track.py"))
print(result)
# Create and return a request using this result
[request.create(result)]
end
# Create the source
sourcetrack = request.dynamic.list(id="play_queue", conservative=false, get_track)
Сценарий get_track.py извлекает запись из таблицы очереди в базе данных.
Я заметил, что Liquidsoap захватывает две дорожки при запуске. Двоих принимают, а одного готовят.
Есть ли способ заставить Liquidsoap принимать только одну дорожку за раз и ждать, чтобы принять следующую, только когда она приближается к концу воспроизводимой в данный момент дорожки?
У меня также есть запланированные программы, которые добавляются в таблицу очереди в базе данных, и когда это происходит, все дорожки удаляются из таблицы очереди в базе данных, а затем программа добавляется в таблицу очереди.
Поскольку Liquidsoap, по-видимому, имеет дорожку, уже загруженную в очередь при воспроизведении подготовленной дорожки, есть ли способ удалить эту дорожку, чтобы Liquidsoap не воспроизводил эту дорожку следующей, а вместо этого снова вызывал сценарий get_track.py для загрузки новой дорожки из очереди. таблица в базе?