我正在尝试确定一首歌在播放之前是否仍然存在于用户的库中。如果用户删除其库中的歌曲,则作用于MPMediaItem的以下代码行仍会生成URL:
NSURL *songURL=[song valueForProperty:MPMediaItemPropertyAssetURL];
songURL
的格式为“ipod-library://item/item.m4a?id = 5050 ......等”。然后,以下行在被调用时崩溃:
[[AVAudioPlayer alloc] initWithContentsOfURL:songURL error:nil];
我尝试使用以下行来查看歌曲是否仍然存在,但无论歌曲是否存在,它都会返回nil。我认为这是因为它与“ipod-library”式网址不兼容。
NSData* songData = [NSData dataWithContentsOfURL:songURL];
任何建议都会很棒。谢谢你的阅读!
答案 0 :(得分:1)
您无法提前告知,但AVAudioPlayer的initWithContentsOfURL将返回nil,如果创建播放器失败,错误将填充NSError。只需检查返回代码。