将资产网址存储为NSstring,如何从itunes媒体库获取与网址对应的MediaItem。
使用以下代码
@objc func getMyMediaItem(SongUrl:NSString)->Void{
let query = MPMediaQuery.songsQuery();
let urlQuery = MPMediaPropertyPredicate(value:SongUrl,forProperty: MPMediaItemPropertyAssetURL,comparisonType: .EqualTo);
query.addFilterPredicate(urlQuery);
let mediaItem = query.items! as [MPMediaItem];
}
但是mediaItem总是返回0项。
答案 0 :(得分:1)
从assetUrl,计算持久性Id并按Id进行查询。
@objc func getMyMediaItem(SongUrl:NSString)->Void{
let number = SongUrl.substringFromIndex(32);
print("my song number "+number);
let query = MPMediaQuery.songsQuery();
// let fileUrl = NSURL(fileURLWithPath: SongUrl as String)
let urlQuery = MPMediaPropertyPredicate(value:number,forProperty: MPMediaItemPropertyPersistentID,comparisonType: .Contains);
query.addFilterPredicate(urlQuery);
let mediaItem = query.items! as [MPMediaItem];
}