问题标签 [liquidsoap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
67 浏览

sublimetext3 - Sublime Text 3 的 Liquidsoap 语法高亮

我找不到 Sublime Text 3 的任何官方语法定义来突出显示Liquidsoap文件 ( *.liq)。

由于我了解 TextMate 捆绑包在某种程度上是兼容的,因此我发现了这个Gist,我将其复制到了,/sublime-text/packages/liquidsoap/liquidsoap.tmLanguage但这也不起作用。

有谁知道如何实现这一目标?

0 投票
1 回答
4951 浏览

android - 如何在 React Native 上捕获麦克风音频并将其流式传输到 IceCast 端点?

我正在开发一个 React Native 移动无线电应用程序(在 Android API 28 作为目标和 26 作为检查,模拟器和物理设备上进行测试),这个想法是让无线电频道主机能够对着手机麦克风说话并拥有它音频覆盖在广播音乐上。

我正在使用 IceCast 2 和 Liquidsoap (成功)将音乐流式传输给听众,并混入一个麦克风流(liquidsoap input.harbor,位于 URL:PORT/ICECAST_ENDPOINT),我目前能够将麦克风流式传输到使用butt

现在我的问题是如何从移动设备捕获麦克风输入,然后将其从 React Native 应用程序流式传输到相同的 URL 端点?

我尝试过使用react-native-microphone-stream,但从未调用过监听器 lambda:

0 投票
1 回答
127 浏览

python - 清除 Liquidsoap 队列中的所有文件,以安排播放列表

我正在使用一个equeue通过将曲目推入播放列表来播放播放列表。假设一个小时后,一个新的播放列表(一组文件)被推送到队列中。不幸的是,这些曲目没有开始播放,因为它们在先前排队的文件之后排队。

以下脚本从队列中删除文件:

它在通过 Telnet 调用时工作,但也会增加一些额外的超时。结果,对下一个播放列表的调度有所延迟。

请注意,我正在通过 Python 应用程序执行 LiquidSoap 调度,该应用程序使用定时线程推送到队列。

你会说什么是解决这个问题的推荐方法?

0 投票
1 回答
505 浏览

liquidsoap - 使用 Liquidsoap(队列替代)安排播放列表的最佳实践方法

我正在寻找使用 Liquidsoap 安排播放列表的最佳实践方法。我目前的方法会产生大量延迟,因此无法满足无缝播放的要求。

要求

  • 在安排了一个新的播放列表后,它应该删除所有以前安排的播放列表项。
  • 清除以前排队的播放列表项时避免任何延迟。

我目前的实现

  1. 将一堆文件(代表一个播放列表)推送到一个equeue
  2. 此队列开始播放
  3. 当下一个时间段到期时,新的播放列表不能简单地排队,因为它只有在前一个播放列表排队的所有曲目都播放完之后才会开始。因此,我首先使用 Liquidsoap 服务器脚本删除之前播放列表的所有曲目。这个过程很耗时,会延迟第 4 步的及时执行。)
  4. 通过将新文件推送到equeue.

我怎样才能更优雅地做到这一点?是否可以清除没有equeue造成延误的情况?

如果有“更正确”的 Liquidsoap 功能来实现这一点,比如playlist(我可以控制它何时播放?)或request.dynamic(不推荐使用)而不是equeue,请告诉我。

更新:我目前正在使用两个队列:A 和 B。在队列 A 播放前一分钟,我用曲目(播放列表)填充它。当它应该真正播放时,我会调高音量。然后,在队列 B 播放前一分钟,我填充了这个。当实际播放时间到时,我将音量从队列 A > B 转换。理论上这个解决方案会很好,但这里的问题是我不知道队列暂停的方式,直到我调高音量。在队列/播放列表被填满的那一刻,曲目似乎已经开始播放。

0 投票
1 回答
240 浏览

alsa - Liquidsoap 无法识别 alsa

我想使用 Liquidsoap 和 Icecast 2 设置网络收音机。

如Liquidsoap Install Manual中所述,我使用 Opam Package Manager安装了 Liquidsoap 。我能够流式传输运行以下代码的文件:

使用~/.opam/4.08.0/bin/liquidsoap radio.liq.

但是,当我尝试运行output.alsa(input.alsa())Liquidsoap 时,返回Error 4: Undefined variable output.alsa.

我检查了我的 alsa 是否正在运行services --status-all,尝试用 录制一些东西arecord然后播放它,aplay看起来 ALSA 工作得很好。我想知道我是否可能缺少一些特定的软件包?

0 投票
1 回答
93 浏览

python - 主管服务无权访问音频设备(“设置 open_pcm 时出错:没有这样的文件或目录”)

我正在使用 Supervisor 来妖魔化 Python / Liquidsoap 应用程序。当我从命令行启动应用程序时,一切正常。

当我使用supervisorctlLiquidsoap 运行相同的应用程序时,尝试访问音频设备时实现失败:

USB 音频接口通过 ALSA 访问。主管配置具有正确的用户集,并且服务是由这个用户启动的:

如果在使用 Supervisord 时涉及任何其他硬件权限问题,有什么想法吗?

0 投票
1 回答
93 浏览

linux - Liquidsoap:如何从播放列表中删除曲目?

我的目标是使用 Liquidsoap 从目录中流式传输新文件。
1. Inotify 跟踪目标文件夹并将所有新文件添加到播放列表:

2. Liquidsoap播放playlist.txt

3. 最后一步:Liquidsoap 应该在播放后从 playlist.txt 中删除曲目
需要帮助删除!

0 投票
1 回答
111 浏览

http-post - Liquidsoap http.put/post 未发布数据

我有一个由 Liquidsoap 1.4.2 源上的元数据更改触发的 http.put/post 调用:

呼叫按预期触发,并命中 api,但我得到的唯一数据是新帖子的 id。

我已将数据转储到终端并手动输入(通过大摇大摆),一切正常,但是从liquidsoap 发送时我没有得到任何数据。

任何帮助,将不胜感激。

0 投票
1 回答
39 浏览

liquidsoap - 在liquidsoap中替换字符串中的子字符串

Liquidsoap 提供了该string.replace功能。但是我应该如何使用它?似乎期望一个函数作为进行替换的第二个参数。

我想做这样的事情:

0 投票
1 回答
108 浏览

streaming - LiquidSoap - 修改流元描述以匹配时间表

所以使用 LiquidSoap 来驱动我的广播电台。我定义了 3 个播放列表和在它们之间切换的时间表:

我想根据当前的时间表修改流的描述。

但我无法弄清楚如何使用 LiquidSoap 实现这一点。我已经盯着https://www.liquidsoap.info/doc-1.4.2/metadata.html几个小时了!

任何人都可以帮忙吗?