我正在使用最新版本的 libspotify API (12.1.51)。我正在使用 C# 和 libspotify.NET(libspotify 的简单互操作包装库)进行编码。我已经构建了一个使用 libspotify API 创建播放列表的程序。我正在使用最新的 Windows 原生 Spotify 客户端来检查我创建的播放列表。
我已经构建了一个程序,它等待播放列表名称和曲目 URI 列表或一个专辑 URI 并创建相应的播放列表。如果提供了专辑 URI,则专辑中的所有曲目都将添加到新的播放列表中,否则提供的曲目 URI 列表将用于创建新的播放列表。程序一直等到回调
playlist_update_in_progress
在接受要创建的新播放列表之前调用并且 done 参数等于 true。
它运行良好,只是有时创建的播放列表没有名称但确实包含所有曲目。我可以告诉程序创建完全相同但没有名称的播放列表,它可能会在第二次工作。它是随机发生的,但我注意到如果我创建大约 200 个播放列表,那么可能有 5-10 个播放列表没有名字。当程序正在运行并创建播放列表并随机看到没有名称的播放列表时,我可以看到播放列表正在添加到您的 Spotify 客户端中。播放列表几乎在调用回调的同时出现,并且 done 等于 true(当然,并非总是如此,可能会有延迟)。我尝试在 Windows 的 Spotify 客户端中手动重命名播放列表,没有任何问题(播放列表名称长度为 0 或空字符串,如果您愿意)。原生 Spotify 客户端甚至不允许空的播放列表名称。
我用:
sp_playlistcontainer_add_new_playlist
添加一个新的播放列表,我尝试使用 IntPtr 和一个 C# 字符串传递给它。两种都试过:
[DllImport("libspotify")]
public static extern IntPtr sp_playlistcontainer_add_new_playlist(IntPtr playlistContainerPtr, string name);
[DllImport("libspotify")]
public static extern IntPtr sp_playlistcontainer_add_new_playlist(IntPtr playlistContainerPtr, IntPtr namePtr);
而且我也试过
sp_playlist_rename
多次重命名播放列表(作为某种修复)但没有成功。我不知道创建播放列表时服务器会发生什么。这是一个错误还是发生了什么?
我真的尝试了很多技巧来完成这项工作,但无济于事。
有关该计划的更多信息:
首先它连接到 Spotify,然后等待一些控制台输入。它检查以下字符串的输入:
要使用名称和曲目列表创建播放列表:
createplaylistfromtracks "Tracks playlist" spotify:track:36MuLw248uzLPtrJ6073ZR spotify:track:5WPkvx0MARhlWhXp1sJg4k spotify:track:1VrdbSFVU9wJkuDM2sWYVe spotify:track:66RG0BBwpQqHxZs06UUyeo spotify:track:0zp3uPuhnARR1XYsgg5JLV
并使用专辑 URI 中的名称和曲目列表创建播放列表:
createplaylistfromalbum "Album playlist" spotify:album:5rVwDKRKa1FjDlLofDZyRb
然后程序解析输入并创建播放列表并设置标志 Busy = true 以便控制台在 Busy = false 之前不会读取任何输入,这在调用 playlist_update_in_progress 回调并且 done 为 true 时发生。然后它再次读取输入...
任何帮助将不胜感激。