我一直在玩libspotify,遇到了一些奇怪的事情。是基于sp_playlistcontainer_move_playlist 0还是基于1的索引参数?他们似乎是既,也许既不:)特别是如果我有三个播放列表,我注意到了以下结果:libspotify API索引参数。基于0还是基于1?
sp_playlistcontainer_move_playlist(手柄,0,3,FALSE)
成功,并在索引0(移动播放列表播放列表列表中的第一个)到播放列表列表的末尾。
sp_playlistcontainer_move_playlist(手柄,0,1,FALSE)
失败,返回SP_ERROR_INVALID_INDATA,根据API规范,这似乎表明我 '尝试将文件夹移动到自己'。从这我猜想,输入(原始)索引是基于0,目标索引是1基于。这很奇怪,但是这
sp_playlistcontainer_move_playlist(手柄,0,2,FALSE)
确实出现了移动第一播放列表(从索引0)到第二插槽播放列表(在什么我会调用索引1,但根据libspotify显然是2)。
当然这也适用
sp_playlistcontainer_move_playlist(手柄,2,0,FALSE)
所以也许目标指数不基于1 ...也许0仅仅是特殊的套管。思考?
所以我猜想目标索引是你希望它在之前的列表中的项目,因此移动0-> 1是没有意义的,因为0已经在1之前,但移动0-> 2是有意义的,因为它意味着插槽1中的项目移动到时隙0,先前在插槽0中的项目移动到插槽1(在2之前)。我猜想还有一件奇怪的事情是,如果我移动到3号插槽(即列表末尾,因为索引2是最后一个'有效'索引),那么我会得到移动的回调,说newPosition是3,即使在现实是2。 – 2012-03-06 17:25:51