设置Spotify比赛位置

时间:2018-03-12 19:58:33

标签: spotify

我在JohnnyCrazy的GitHub上使用SpotifyAPI-NET在我的Spotify桌面客户端上播放和暂停歌曲。这很好。

现在我想改变当前播放歌曲的播放位置。所以我只想说" SetPlayingPosition(64)"从位置" 01:04"播放当前歌曲。似乎SpotifyLocalAPI不支持此功能。

要播放和暂停歌曲,API会使用以下格式的消息: http://127.0.0.1:4381/remote/pause.json?pause=true&ref=&cors=&_=1520448230&oauth=oauth&csrf=csrf

我试图找到这种格式的可能命令的摘要,但我找不到任何东西。

是否有类似http://127.0.0.1:4381/remote/seek.json的东西...我可以用来寻找特定的位置?

修改

我试图在SpotifyAPI的本地部分的RemoteHandler类中编写自己的方法。使用此方法,我可以设置当前播放的位置。 这是我的代码:

internal async Task SendPositionRequest(double playingPositionSec)   //The desired playback position in seconds
{
    StatusResponse status = GetNewStatus();  //Get the current status of the local desktop API

    string trackUri = "spotify:track:" + status.Track.TrackResource.ParseUri().Id;  //The URI of the current track

    TimeSpan playingPositionTimeSpan = TimeSpan.FromSeconds(playingPositionSec);
    string playingPosStr = playingPositionTimeSpan.ToString(@"mm\:ss");   //Convert the playingPosition to a string (Format mm:ss)

    string playingContext = "spotify:artist:1EfwyuCzDQpCslZc8C9gkG";

    await SendPlayRequest(trackUri + "#" + playingPosStr, playingContext);
    if (!status.Playing) { await SendPauseRequest(); }
}

我需要使用正确的playingContext调用SendPlayRequest()方法,因为当前歌曲是播放列表的一部分并且您在没有上下文的情况下调用SendPlayRequest()时,下一首歌曲不再来自播放列表。

但是你可以看到我目前使用固定的上下文。

所以我现在的问题是:如何使用SpotifyLocalAPI获取当前播放歌曲的上下文(播放列表,艺术家......)?

1 个答案:

答案 0 :(得分:0)

您提到的库的{{1}}方法可让您在用户正在收听的任何设备上进行播放。您可以找到文档here

目前无法使用该库的Spotify Local API部分进行播放。