Deezer Radio:曲目 ID 不在收音机中

Deezer Radio: Track id not in radio

如何实现Deezer Radio API中的所有曲目保持不变并可播放?

解释: 我在机顶盒上有一个 Deezer 应用程序(HTML+JavaScript,没有外部库)。

应用程序从上面提到的 API 中获取无线电流量列表。然后播放曲目,从 streaming API.

中获取每个曲目的流 URL

有时,许多 API 次调用的无线电曲目列表保持不变,有时 每次调用时列表都会变化 。为什么会这样?当广播曲目不再在广播列表中时,流式传输 API returns 错误:

{
    error: {
        type: "DataException",
        message: "Track id not in radio",
        code: 800
    }
}

例如,我得到了一个特定电台的 40 首曲目的列表,正常流式传输 API returns 完整流式传输 URL,但每 5 首左右的曲目无法播放( a.k.a.Deezer API 抛出以上错误)这不是因为错误的 API 调用,而是因为该特定曲目不再在 40 首曲目的原始列表中......或者这是我的至少自己的假设。

因此,我正在寻找一种方法来获得一个包含 40 首曲目的固定列表,该列表在我播放所有 40 首曲目并获得新列表之前不会改变。这是可能的还是我遗漏了什么?

谢谢!

JavaScript SDK.

有两种实现方式

1) DZ.player.playRadio(radio_id)

可以直接播放电台

2) 如果你真的想要一个固定的列表,你可以在 http://api.deezer.com/radio/radio_id/tracks 上获取曲目列表,然后用 DZ.player.playTracks(tracks)

播放所有曲目

示例:

DZ.api('/radio/30771/tracks', function(result) {
    var tracks = result.data.map(function(elem) {
        return elem.id;
    });

    DZ.player.playTracks(tracks);
});

编辑: 在评论中讨论后,解决方案是直接播放曲目,而不在流 url 中提及 radio_id。