Spotify iOS SDK 返回不存在的歌曲? - Swift
Spotify iOS SDK returning songs that do not exist? - Swift
所以我现在正在我的应用程序中构建一些播放列表和歌曲检索,我对从 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" 和 "Light Day Remix" 实际上 不在 此播放列表中,但出于某种原因,在我下面的应用程序中,当我拉出这个播放列表时,它列出了这些歌曲:
Spotify In My App
(显然我无法 post 实际图像,因为我的代表 - 抱歉)
知道为什么要这样做吗?
由于某些不明原因,这些曲目可能不再可用。这很常见。默认情况下,Spotify 客户端不会在播放列表中显示不可用的曲目,但在设置中有一个切换开关,您可以翻转它们以显示为灰色。
我不知道 iOS SDK,但应该有一个属性告诉您曲目的可用市场或者是否可以播放,具体取决于登录用户所在的国家/地区英寸
这是它在网络中的工作方式API,应该是相似的。
https://developer.spotify.com/web-api/track-relinking-guide/
所以我现在正在我的应用程序中构建一些播放列表和歌曲检索,我对从 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" 和 "Light Day Remix" 实际上 不在 此播放列表中,但出于某种原因,在我下面的应用程序中,当我拉出这个播放列表时,它列出了这些歌曲: Spotify In My App
(显然我无法 post 实际图像,因为我的代表 - 抱歉)
知道为什么要这样做吗?
由于某些不明原因,这些曲目可能不再可用。这很常见。默认情况下,Spotify 客户端不会在播放列表中显示不可用的曲目,但在设置中有一个切换开关,您可以翻转它们以显示为灰色。
我不知道 iOS SDK,但应该有一个属性告诉您曲目的可用市场或者是否可以播放,具体取决于登录用户所在的国家/地区英寸
这是它在网络中的工作方式API,应该是相似的。 https://developer.spotify.com/web-api/track-relinking-guide/