Spotify API-Net ResumePlayback-文档中的代码示例错误

时间:2018-08-15 18:44:13

标签: spotify spotify-desktop

Spotiy API_NET上ResumePlayback的文档

给出以下示例:

[]

当我在C#中尝试该代码时,出现以下代码错误,无法进行构建:

  

错误CS0121,以下方法或属性之间的调用不明确:“ SpotifyWebAPI.ResumePlayback(字符串,字符串,列表,整数?)”和“ SpotifyWebAPI.ResumePlayback(字符串,字符串,列表,字符串)”   谁能告诉我这是怎么了?

此外,最简单的方法是在暂停时恢复现有播放器?

编辑

@rene回答了我问题的第一部分。

关于第二部分,如何在暂停时恢复现有播放器,我通过图书馆的Github网站获得了答案,这很简单:

ErrorResponse error = _spotify.ResumePlayback(uris: new List<string> { "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" });

1 个答案:

答案 0 :(得分:1)

ResumePlayback方法有两个采用以下参数的重载:

ErrorResponse ResumePlayback(string deviceId = "", 
                            string contextUri = "", 
                            List<string> uris = null,
                            int? offset = null)

ErrorResponse ResumePlayback(string deviceId = "", 
                             string contextUri = "", 
                             List<string> uris = null,
                             string offset = "")

当编译器遇到这一行

ErrorResponse error = _spotify.ResumePlayback(
                            uris: new List<string> { "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" });

它必须决定要调用哪个ResumePlayback,并且它不想猜测或掷骰子。

它查看将要提供哪些参数,而您只给它uris(这是第三个参数)。它将采用其他参数的默认值。对于这两种方法,这些默认值(对于字符串或对于Nullable (int?)为null)都适用,因此编译器无法确定应将其绑定到哪个方法。它显示了一个错误。

提供更多参数,以便编译器可以选择唯一的重载。

ErrorResponse error = _spotify.ResumePlayback(
                            uris: new List<string> { "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" }
                            , 
                            offset: 0
                       );

添加命名参数offset并将其设置为int的值为0,足以使编译器选择此重载绑定到:

ResumePlayback(string deviceId, string contextUri, List<string> uris, int? offset)