这可能是一个简单的问题,但我正在尝试使用Spotify的API,该API记录在Objective C中,但我已经尽我所能在Swift中进行了研究。
@属性(非原子、只读、复制)NSArray*类型是他们的API协议中的一个SPTartist类;我不知道如何在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
字典返回空URL——如果你只println()
对player.currentTrackMetadata
的响应,你会发现它只包含URL。
genres
属性位于SPTArtist
类上。要将裸URL转换为SPTArtist
,请使用SPTRequest
类(特别是requestItemAtURI
方法)。一旦有了SPTArtist
对象,就可以从中获得所需的所有元数据,包括流派。
有关详细信息,请参阅库附带的文档。此外,SDK附带的Simple Player演示应用程序也做了类似的事情。