我想从我正在使用 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
并查找具有我想要的 commonKey
的 AVMetadataItem
(例如,title
).然后,当我找到 AVMetadataItem
时,只需从中获取 value
属性。
现在,这很好用,但是当您尝试获取数据时可能需要一段时间。您可以通过将 loadValuesAsynchronouslyForKeys:completionHandler:
发送到您刚刚找到的 AVMetadataItem
来异步加载数据。
希望对遇到同样问题的人有所帮助。
关于ios - 从音频流中获取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707513/