【问题标题】:Is it possible to get the currently playing track in the 1.x apps api?是否可以在 1.x 应用程序 api 中获取当前播放的曲目?
【发布时间】:2014-04-18 14:43:27
【问题描述】:

我正在尝试更新我当前使用旧版 API 的 Spotify 远程控制应用程序以使用新的 1.x API。 是否可以使用 1.x API 访问有关当前播放曲目的信息? models.player.track 似乎不再存在(尽管它在文档中)。

出于好奇,我将它用于在 Spotify Desktop 中运行的我的应用程序,该应用程序使用 websockets 与 Python 服务器通信,然后为手机和平板电脑提供 Web 界面,以远程控制在桌面上运行的 Spotify 实例。这在使用旧版 API 时效果很好,我可以控制播放并从任何连接的遥控器获取正在播放的信息。我认为这个应用程序很快就会停止工作,因为 Spotify 表示他们正在淘汰旧版 API。 (除非我假设应用程序将停止工作是错误的,否则没关系)。

谢谢。

【问题讨论】:

    标签: spotify spotify-app


    【解决方案1】:

    可以通过加载Playertrack属性访问当前播放曲目。

    你会这样做:

    require(['$api/models'], function(models) {
    
        function printStatus(track) {
            if (track === null) {
                console.log('No track currently playing');
            } else {
                console.log('Now playing: ' + track.name);
            }
        }
    
        // update on load
        models.player.load('track').done(function(p) {
            printStatus(p.track);
        });
    
        // update on change
        models.player.addEventListener('change', function(p) {
            printStatus(p.data.track);
        });
    });
    

    Tutorial App 中有一个工作示例,名为 获取当前播放的曲目

    【讨论】:

    • 太棒了!谢谢你。这应该足以让我继续前进。非常感谢。
    • 对于以后遇到此问题的其他人,应用程序 API 已停止使用,因此此答案不再有效。我目前正在寻找一种有效的方法来解决这个问题,因为 API 似乎没有提供一种方法来获取正在收听的当前曲目。如果我找到一个,我会更新评论。
    • 现在有好的解决方案吗?对获取当前歌曲的方法非常感兴趣。
    • 他们的 Web API 有一个功能请求 (github.com/spotify/web-api/issues/12),但他们目前还没有实现这个功能。
    • 这里写了一些(相当肮脏的)解决方法:stackoverflow.com/questions/33883360/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2015-05-16
    相关资源
    最近更新 更多