【问题标题】:How I can get upcoming song in Icecast ? (Icecast with MySQL)如何在 Icecast 中获得即将播放的歌曲? (使用 MySQL 进行冰播)
【发布时间】:2021-11-23 17:18:20
【问题描述】:

我正在使用 Icecast 开发网络广播。想法是您单击歌曲,然后获取信息(通过 mysql - 比元数据更多的信息)。

到目前为止,我找不到“查看”即将到来的列表的方法,所以我正在考虑通过 MySQL “手动”完成。

A. I will create a list in the SQL with all info I need with a uuid
for each song, then I will add the uuid to the mp3 metada.

B. I will create a playlist with the exact order of the SQL and will
upload it to icecast. 

C.  I will display the song in the html and while playing I can grab
the uuid and mark it as “playing now”.

目前我能想到的唯一问题是我无法随机播放播放列表,但这对我的项目来说是次要的。

为了避免上述所有情况,有没有办法使用 Icecast 在我的播放列表中“查看”即将播放的歌曲(例如,接下来的 10 首歌曲)?

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow!我建议阅读 What to askHow to ask 并可能在之后编辑问题,否则问题可能已关闭或删除。
  • 不,Icecast 不知道“未来”。它只知道在那个特定时间点发生了什么。您所要求的需要在“源客户端”端完成,这绝对可以。大量支持 Web 界面或 API 的播放器/源客户端。
  • 谢谢 TBR,您能否推荐一两个“启用 API 的播放器/源客户端”,以便我知道我在寻找什么?

标签: php mysql random icecast


【解决方案1】:

这可以工作。

请注意,SQL 表中的行没有固有顺序。如果您希望它们按特定顺序排列,则必须在 SELECT 语句中包含 ORDER BY。所以

SELECT uuid, album, title, artist, tracknumber 
  FROM catalog
 WHERE albumnumber = 42
 ORDER BY tracknumber

按顺序为您获取专辑中的曲目。

要随机改组它们,请改用ORDER BY RAND()

当心:ORDER BY RAND() 如果您将它用于结果集中的数百行以上,性能会很糟糕。

【讨论】:

  • 感谢您的及时回复,在我的情况下,洗牌的问题不在 SQL 中,而是在 Icecast 中,如果我选择通过 Icecast 对歌曲进行洗牌,它将洗牌播放列表,但 mysql 中的顺序(将显示)将保持不变。我将有一个包含歌曲 009,005,002 的播放列表,但在显示中我将有 001,002,003
猜你喜欢
  • 2011-02-14
  • 2023-04-03
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
相关资源
最近更新 更多