ios - 从音频流中获取元数据

标签 ios ios4 metadata audio-streaming avqueueplayer

我想从我正在使用 AVQueuePlayer 播放的 AVPlayerItem 中的流 URL 获取文件名,如果可能的话,还想获取专辑图像,但我不知道如何去做。

此外,如果事实证明我的流媒体 URL 没有任何元数据,我可以在将元数据传递给 AVPlayerItem 之前将其放入我的 NSURL* 中吗?

谢谢。

最佳答案

我很惊讶没有人回答这个问题。 事实上,没有人回答我的任何其他问题。 让我想知道这里的人真正拥有多少知识。

无论如何,我会继续回答我自己的问题。 我通过执行以下操作了解了如何获取元数据:

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
NSArray *metadataList = [playerItem.asset commonMetadata];
for (AVMetadataItem *metaItem in metadataList) {
    NSLog(@"%@",[metaItem commonKey]);
}

这给了我一个列表如下:

title
creationDate
artwork
albumName
artist

有了这个列表,我现在知道如何从我的音频流中访问元数据了。只需简单地遍历 NSArray 并查找具有我想要的 commonKeyAVMetadataItem(例如,title).然后,当我找到 AVMetadataItem 时,只需从中获取 value 属性。

现在,这很好用,但是当您尝试获取数据时可能需要一段时间。您可以通过将 loadValuesAsynchronouslyForKeys:completionHandler: 发送到您刚刚找到的 AVMetadataItem 来异步加载数据。

希望对遇到同样问题的人有所帮助。

关于ios - 从音频流中获取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707513/

相关文章:

iphone - NIB 相关的崩溃在 iPad 但不是 iPhone

ios4 - -(无效)应用程序将终止:(UIApplication *)application is not calling when app removed from background

python - 在 Python 中读取 PDF 属性/元数据

JavaScript 处理设备触摸屏被按住

ios - ios开发中获取文档文件夹后的路径

objective-c - 如何在不覆盖 objective-c 的情况下保存文本文件

ffmpeg - 使用 FFmpeg 检索和保存媒体元数据

ios - 如何使用 ALAssetsLibrary 检索照片的文件大小?

ios - 使用相同的请求标识符同时注册 2 个本地通知而不覆盖

iphone - 使用 iPhone SDK 4 安装 Xcode 3.2.3,得到 "Base SDK missing",看不到其他 SDK