这可能是一个简单的问题,但我正在尝试使用 Objective C 中记录的 Spotify 的 API,但我一直在尽可能地使用 Swift 进行研究。
@property (nonatomic, readonly, copy) NSArray *genres 然而,是他们的 SPTartist 类的 API 协议(protocol)之一;我不知道如何快速地以工作方式使用它。
这是我已经开始工作的示例代码。
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 协议(protocol)来跟踪字符串输出。当我尝试使用 SPTArtistGenres 或 SPTArtistGenre 代替 SPTAudioStreamingMetaDataTrackDuration 时,它不起作用。 为了说明我的问题,我想使用 currentTrackMetaData 调用上面的 genres 属性。非常感谢任何建议!
最佳答案
这与 Swift 完全无关 - 如果您尝试在 Objective-C 中做您正在做的事情,它也会失败。
播放器的 currentTrackMetadata
字典返回裸 URL - 如果您只是 println()
对 player.currentTrackMetadata
的响应,您会看到它只包含 URL。
genres
属性位于 SPTArtist
类中。要将您的裸 URL 转换为 SPTArtist
,请使用 SPTRequest
类(特别是 requestItemAtURI
方法)。拥有 SPTArtist
对象后,您将能够从中获取所需的所有元数据,包括流派。
有关详细信息,请参阅库随附的文档。此外,SDK 中包含的 Simple Player 演示应用程序也执行类似的操作。
关于ios - Swift 的 Spotify API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490117/