Deezer电台:电台没有跟踪id

Deezer Radio: Track id not in radio

本文关键字:电台 跟踪 id Deezer      更新时间:2023-09-26

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

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

应用程序从上面提到的API获取无线铁路列表。然后播放曲目,从流式API中获取每个曲目的流式URL。

有时,许多API调用的无线音轨列表保持不变,有时列表随每次调用而更改。为什么会这样?当电台曲目不再在电台列表中时,流式API返回错误:

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

例如,我得到了一个特定电台的40首曲目列表,流媒体API通常返回完整的流媒体URL,但每5首左右的曲目都无法播放(又称Deezer API抛出以上错误),这不是因为erranous API调用,而是因为该特定曲目不再在40首曲目的原始列表中。。。至少这是我自己的假设。

因此,我正在寻找一种方法,以拥有一个40首曲目的固定列表,在我播放完所有40首曲目并获得新列表之前,这些曲目不会改变。这可能吗?还是我错过了什么?

谢谢!

使用JavaScriptSDK有两种方法可以实现这一点。

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。