首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Liquidsoap中一次只加载一首曲目

如何在Liquidsoap中一次只加载一首曲目
EN

Stack Overflow用户
提问于 2020-08-06 22:15:59
回答 1查看 125关注 0票数 0

我有一个MySQL数据库,其中存储了我所有的曲目及其相关信息。数据库中的一个表是一个队列表,我从该表中拉出一个曲目以播放Liquidsoap。我提供了这些曲目,通过使用request.dynamic.list与Liquidsoap一起播放。

代码语言:javascript
复制
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脚本从数据库的队列表中加载新的曲目?

EN

回答 1

Stack Overflow用户

发布于 2021-01-17 02:14:11

Liquidsoap总是提前准备好流的下一项,这是其调度器的基本原则。例如,这允许在播放下载的曲目之前开始下载。只要您使用的是request.dynamic.list,那么被调用的脚本就必须注意这一点。换句话说,您不能仅依靠时钟时间来评估要返回的曲目。据我所知,您可能更喜欢使用request.queue源,并让脚本通过telnet服务器及时推送每个请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63285537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档