Deezer Radio:跟踪id不在广播中

时间:2015-03-18 08:58:05

标签: javascript deezer

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

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

App从上述API中获取无线电trakcs列表。然后播放曲目,从streaming API获取每首曲目的流媒体网址。

有时,无线电轨道列表对于许多API调用保持不变,有时列表会随着每次调用而改变。为什么会这样?当无线电轨道不再位于无线电列表中时,流API返回错误:

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

例如,我得到了一个特定无线电的40个音轨列表,流媒体API通常会返回完整的流媒体网址,但每5个左右的音轨无法播放(也就是Deezer API抛出错误),这不是因为错误的API调用但是因为那个特定的曲目不再是40首曲目的原始列表...或者这至少是我自己的假设。

因此,我正在寻找一种方法来获得40个轨道的固定列表,这些轨道在我播放所有40个轨道然后获得新列表之前不会改变。这可能还是我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用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);
});

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