Spotify iOS SDK返回不存在的歌曲? - 斯威夫特

时间:2016-04-29 17:59:56

标签: ios swift sdk spotify

所以我现在正在我的应用中构建一些播放列表和歌曲检索,而且我对从API返回的一些结果感到困惑。它似乎返回了Spotify上不再存在的歌曲,或者已经从播放列表中删除了很长时间。

从用户检索播放列表列表工作正常,但为了防止这个问题是由我绘制播放列表的轨道引起的,这里是我用来获取它们的代码:

SPTPlaylistSnapshot.playlistWithURI(uri, accessToken: session.accessToken) { (error, playlistSnapshotOb) -> Void in
        if let playlistSnapshot = playlistSnapshotOb as? SPTPlaylistSnapshot {
            let itemz = playlistSnapshot.firstTrackPage.items //tracksForPlayback()
            for item in itemz{
                let track = item as! SPTPlaylistTrack
                let splice = "\(track.uri)"

                let trackURI = splice.stringByReplacingOccurrencesOfString("spotify:track:", withString: "")

                var displayArtist = String()
                let artistz = track.artists
                if artistz.count > 1{
                    for i in 0...(artistz.count - 1){
                       let itz = artistz[i] as! SPTPartialArtist
                        if i > 0 {
                            displayArtist += ", \(itz.name)"

                        }else{
                            displayArtist += "\(itz.name)"
                        }
                    }
                    self.tracks.append(track.name)
                    self.ArtistObjects.append(displayArtist)
                    self.uriS.append(trackURI)


                }else{
                    let singularArtist = artistz[0] as! SPTPartialArtist
                    displayArtist = singularArtist.name
                    self.tracks.append(track.name)
                    self.ArtistObjects.append(displayArtist)
                    self.uriS.append(trackURI)
                }

此外,下面是桌面Spotify应用程序的屏幕截图,显示我正在拉动的播放列表的真实内容: Spotify per Desktop

你会看到歌曲" Big Bank Dank"和#34; Light Day Remix" 实际上在这个播放列表上,但出于某种原因,在我的应用程序下面,当我拉这个播放列表时,它列出了这些歌曲: Spotify In My App

(显然,由于我的代表道歉,我无法发布实际图片)

知道为什么要这样做吗?

1 个答案:

答案 0 :(得分:0)

由于某些未指明的原因,这些曲目可能不再可用。这很常见。默认情况下,Spotify客户端不会在播放列表中显示不可用的曲目,但在设置中有一个切换,您可以翻转,以便它们显示为灰色。

我不了解iOS SDK,但应该有一个属性告诉您轨道的可用市场或是否可播放,具体取决于用户登录的国家/地区。

这就是它在Web API中的工作方式,它应该是类似的。 https://developer.spotify.com/web-api/track-relinking-guide/