从音频流中获取元数据

rai*_*xer 11 metadata audio-streaming ios4 ios avqueueplayer

我想获取文件名,如果可能的话,从AVPlayerItem中的流媒体URL获取专辑图像,我正在使用AVQueuePlayer,但我不知道该怎么做.

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

谢谢.

rai*_*xer 37

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

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

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

这给了我一个如下列表:

title
creationDate
artwork
albumName
artist
Run Code Online (Sandbox Code Playgroud)

现在,通过该列表,我知道如何从我的音频流中访问元数据.只需简单地浏览NSArray并寻找AVMetadataItem具有commonKey我想要的东西(例如title).然后,当我发现AVMetadataItem刚从它获得value财产.

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

希望对任何可能发现自己遇到同样问题的人有所帮助.