【问题标题】:No stream value when requesting a Deezer track through vanilla HTTP通过普通 HTTP 请求 Deezer 轨道时没有流值
【发布时间】:2013-10-08 16:14:09
【问题描述】:

例如在以下位置发出 HTTP GET: https://api.deezer.com/track/3980888?access_token=xxx 其中 access_token 是有效的 Premium+ 令牌。响应不包括流字段。但是,如果(例如)使用来自 Deezer Android SDK 的 DeezerConnect 和 DeezerRequest,则包含它。

【问题讨论】:

    标签: android api deezer


    【解决方案1】:

    要在 API 响应中获取有效的流,您需要提供 access_tokenimei 参数。

    imei 参数随后用于解码流并播放曲目。不幸的是,并不是所有的 Android 设备都有一个 IMEI 号码,所以 Deezer SDK 使用它自己的方式来生成这个值。

    这就是为什么您确实应该使用 DeezerConnect / DeezerRequest 系统来调用 API,以确保您获得正确的 Stream。

    【讨论】:

    • 谢谢泽维尔! Util.getImei 是否有机会在未来的 SDK 版本中公开?我目前正在使用反射从您的DeezerConnect 实例中读取内部imei 字段,但这显然是一个非常脆弱的黑客攻击。 PS:我使用 vanilla HTTP 的原因是该应用程序已经在使用 github.com/koush/ion 进行 REST、图像加载、WebSocket 等,因为它与 Android UI 线程很好地集成,同时使用 NIO 执行非阻塞 I/O来自后台线程(具有 HTTP 流水线支持和其他好东西)。
    • 我们会看看我们是否这样做,但现在你的 hack 可能会正常工作
    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2010-11-01
    • 2015-03-13
    • 1970-01-01
    • 2011-06-20
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多