我正在寻找使用 Liquidsoap 安排播放列表的最佳实践方法。我目前的方法会产生大量延迟,因此无法满足无缝播放的要求。
要求:
- 在安排了一个新的播放列表后,它应该删除所有以前安排的播放列表项。
- 清除以前排队的播放列表项时避免任何延迟。
我目前的实现:
- 将一堆文件(代表一个播放列表)推送到一个
equeue
- 此队列开始播放
- 当下一个时间段到期时,新的播放列表不能简单地排队,因为它只有在前一个播放列表排队的所有曲目都播放完之后才会开始。因此,我首先使用 Liquidsoap 服务器脚本删除之前播放列表的所有曲目。这个过程很耗时,会延迟第 4 步的及时执行。)
- 通过将新文件推送到
equeue
.
我怎样才能更优雅地做到这一点?是否可以清除没有equeue
造成延误的情况?
如果有“更正确”的 Liquidsoap 功能来实现这一点,比如playlist
(我可以控制它何时播放?)或request.dynamic
(不推荐使用)而不是equeue
,请告诉我。
更新:我目前正在使用两个队列:A 和 B。在队列 A 播放前一分钟,我用曲目(播放列表)填充它。当它应该真正播放时,我会调高音量。然后,在队列 B 播放前一分钟,我填充了这个。当实际播放时间到时,我将音量从队列 A > B 转换。理论上这个解决方案会很好,但这里的问题是我不知道队列暂停的方式,直到我调高音量。在队列/播放列表被填满的那一刻,曲目似乎已经开始播放。