我有一个 MySQL 数据库,用于存储我的所有曲目及其相关信息。数据库中的一个表是一个队列表,我从中拉出一个曲目供 Liquidsoap 播放。我正在使用 request.dynamic.list 提供这些曲目以与 Liquidsoap 一起播放。
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 脚本来加载新曲目从数据库中的队列表?