使用SpotifyAPI-NET设置Spotify桌面端播放进度的技术咨询
解决SpotifyAPI-NET设置播放进度的问题
我刚好也碰到过一模一样的情况——用JohnnyCrazy的SpotifyAPI-NET控制桌面客户端时,播放/暂停功能跑得很顺,但死活找不到调整播放进度的方法。其实问题核心是SpotifyLocalAPI这个封装库没把底层本地HTTP API的进度调整端点暴露出来,不过咱们可以手动构造请求绕开这个限制。
具体操作步骤:
- 复用已有令牌:你之前调用播放/暂停时用到的
oauth和csrf令牌,完全可以复用在进度调整请求里。确保代码里已经通过库的GetOAuthToken()和GetCsrfToken()方法拿到并保存了这两个值。 - 构造Seek请求:Spotify本地服务(
127.0.0.1:4381)提供了/remote/seek.json端点专门用来调整播放进度,需要传这几个关键参数:pos:要跳转的目标秒数(比如你需要的64)oauth:你的OAuth令牌csrf:你的CSRF令牌- 额外的
callback参数(直接照搬播放暂停请求里的格式就行,比如callback=spotifyCallback)
C#示例代码:
using System.Net.Http; // 假设已经获取到oauthToken和csrfToken string oauthToken = "你的OAuth令牌"; string csrfToken = "你的CSRF令牌"; int targetPosition = 64; // 目标播放位置(单位:秒) using (var client = new HttpClient()) { var requestUrl = $"http://127.0.0.1:4381/remote/seek.json?pos={targetPosition}&oauth={oauthToken}&csrf={csrfToken}&callback=spotifyCallback"; var response = await client.GetAsync(requestUrl); response.EnsureSuccessStatusCode(); // 验证请求是否成功 }
额外建议:
如果想让这个功能更贴合库的使用逻辑,可以考虑给SpotifyAPI-NET项目提交一个PR,把SetPlayingPosition方法封装进去——底层API本身是支持的,只是库还没实现这个接口而已。
内容的提问来源于stack exchange,提问作者M1S2
相关产品推荐
相关产品推荐

