检查歌曲是不是仍然存在

Posted

技术标签:

【中文标题】检查歌曲是不是仍然存在【英文标题】:Checking if a song still exists检查歌曲是否仍然存在 【发布时间】:2015-01-13 20:18:14 【问题描述】:

我正在尝试确定一首歌曲在播放之前是否仍存在于用户的库中。如果用户在其库中删除一首歌曲,则作用于 MPMediaItem 的以下代码行仍会生成一个 URL:

NSURL *songURL=[song valueForProperty:MPMediaItemPropertyAssetURL];

songURL 的格式为“ipod-library://item/item.m4a?id=5050...等”。然后以下行在调用时崩溃:

[[AVAudioPlayer alloc] initWithContentsOfURL:songURL error:nil];

我尝试使用以下行来查看歌曲是否仍然存在,但无论歌曲是否存在,它都会返回 nil。我相信这是因为它与“ipod-library”样式的 URL 不兼容。

NSData* songData = [NSData dataWithContentsOfURL:songURL];

任何建议都会很棒。感谢阅读!

【问题讨论】:

尝试将NSError 传递给您的initWithContentsOfURL:error:。如果您收到错误消息,您将知道该文件不存在(或已损坏)。 @IanMacDonald 谢谢! 【参考方案1】:

你无法提前知道,但 AVAudioPlayer 的 initWithContentsOfURL 将返回 nil,如果创建播放器失败,错误将填充 NSError。只需检查返回码。

https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioPlayerClassReference/index.html#//apple_ref/occ/instm/AVAudioPlayer/initWithContentsOfURL:fileTypeHint:error:

【讨论】:

好的,太糟糕了,无法提前检查,但该解决方案有效。感谢您的回复!

以上是关于检查歌曲是不是仍然存在的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 UIView 是不是仍然存在?

如何检查 IDP 是不是仍然存在有效会话?

重启ios应用后检查照片是不是仍然存在于相机胶卷中

检查服务器上是不是存在 URL

如何检查列表中是不是存在列表项[关闭]

如何检查光标是不是存在(打开状态)