Spotify API 到 Swift

Spotify API to Swift

可能是一个简单的问题,但我正在尝试使用 Objective C 中记录的 Spotify 的 API,但我一直在尽我所能在 Swift 中进行研究.

@属性(非原子,只读,复制)NSArray *genres 然而,是他们的 API SPTartist class 协议之一;我不知道如何在 swift 中以工作方式使用它。

这是我开始工作的示例代码。

    func updateTrackLength(){
    if player?.currentTrackMetadata == nil {
        trackLength.text = ""
        return
    }
    let length = player?.currentTrackMetadata[SPTAudioStreamingMetadataTrackDuration] as Int
    let convert = length / 60
    let remainder = length % 60
    var newlength = String(convert)
    var newRemainder = String(remainder)


    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        self.trackLength.text = "Track length: " + newlength + " Minutes " + newRemainder + " Seconds"
    })
}

这使用 currentTrackMetaData 和任何 SPT 协议来跟踪字符串输出。当我尝试使用 SPTArtistGenres 或 SPTArtistGenre 代替 SPTAudioStreamingMetaDataTrackDuration 时,它不起作用。 为了说明我的问题,我想使用 currentTrackMetaData 来调用上面的流派 属性。非常感谢任何建议!

这与 Swift 完全无关 - 如果您尝试做您在 Objective-C 中正在做的事情,它也会失败。

玩家的 currentTrackMetadata 字典 returns 裸 URLs - 如果你只是 println()player.currentTrackMetadata 的回应,你会看到它包含只有 URLs.

genres 属性 在 SPTArtist class 上。要将裸 URL 转换为 SPTArtist,请使用 SPTRequest class(具体来说,requestItemAtURI 方法)。拥有 SPTArtist 对象后,您将能够从中获取所需的所有元数据,包括流派。

有关详细信息,请参阅库随附的文档。此外,SDK 中包含的 Simple Player 演示应用程序也做类似的事情。