我有一个基于结构的数组,该结构包括歌曲标题和歌手作为字符串,其图稿作为type MPMediaItemArtwork
。要使预览在Swift
UI中起作用,请参阅
struct TrackRow_Previews: PreviewProvider {
static var previews: some View {
TrackRow(track: Track(name: "Track 1", artist: "Artist 1", artwork: [MPMediaItemArtwork]))
}
}
当我注释掉预览时,该视图可以正常工作,因此,我能够将选定的MPMediaItemArtwork
-打印到控制台MPConcreteMediaItemArtwork: 0x281efb890
。但它也不接受。我可以为预览图稿添加什么值以使预览提供者正常工作?
额外详情:
struct Track: Hashable {
var name: String
var artist: String
var artwork: MPMediaItemArtwork
}
func getTracks(chosenPlaylist: String) {
trackArray = []
for playlist in playlists! {
if (playlist.value(forProperty: MPMediaPlaylistPropertyName)as! String) == chosenPlaylist {
let songs = playlist.items
for song in songs {
if song.artwork != nil {
trackArray.append(Track(name: (song.value(forProperty: MPMediaItemPropertyTitle) as! String), artist:(song.value(forProperty: MPMediaItemPropertyArtist) as! String), artwork: song.artwork!))
}
}
sortArray()
}
}
}
我的问题是我没有导入MediaPlayer,因为我不需要导入它,但显然需要预览。起作用的代码如下:
struct TrackRow_Previews: PreviewProvider {
static var previews: some View {
TrackRow(track: Track(name: "Track 1", artist: "Artist 1", artwork:MPMediaItemArtwork(image: UIImage(imageLiteralResourceName: "Artwork"))))
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句