1

每当我使用MPMediaItemCollection转换MPMediaItemPropertyAssetURL为数据时,我都会得到空值?

这是我的代码

MPMediaItemCollection *collection=[allAlbumsArray objectAtIndex:indexPath.row];
MPMediaItem *item = [collection representativeItem];

NSLog(@" songs titles_str url is===>%@",[item valueForProperty:MPMediaItemPropertyAssetURL]);

NSLog(@"class type is %@",[[item valueForProperty:MPMediaItemPropertyAssetURL] class]);

self.songData=[NSData dataWithContentsOfURL:[item valueForProperty:MPMediaItemPropertyAssetURL]];

NSLog(@"original data is %@",self.songData);

在这里,我正在获取歌曲的网址ipod-library://item/item.mp3?id=-9207595762773025867

但是当我转换成数据时,我得到空值感谢提前。

4

1 回答 1

1

这里的问题是 URL 有一个自定义方案,ipod-library它只能与AVFoundation方法一起使用,例如AVAsset对象。

MPMediaItem类参考说明了这一点MPMediaItemPropertyAssetURL

MPMediaItemPropertyAssetURL

指向媒体项目的 URL,可以从中创建 AVAsset 对象(或其他基于 URL 的 AV Foundation 对象),并根据需要使用任何选项。值是一个 NSURL 对象。

该 URL 具有 ipod-library 的自定义方案。例如,一个 URL 可能如下所示:

ipod-library://item/item.m4a?id=12345

不支持在 AV Foundation 框架之外使用 URL。

于 2012-05-21T07:33:29.393 回答