gpt4 book ai didi

ios - 来自 AVMetadataItem objective-c 的 ISRC 代码

转载 作者:行者123 更新时间:2023-11-28 20:10:07 24 4
gpt4 key购买 nike

我想获取本地 iTunes 歌曲的 ISRC 代码。我可以通过以下代码获取元数据:

 MPMusicPlayerController *mp= mp = [MPMusicPlayerController applicationMusicPlayer];
NSURL *assetURL = [mp.nowPlayingItem valueForProperty:MPMediaItemPropertyAssetURL];
AVAsset *asset = [AVAsset assetWithURL:assetURL];
NSArray *metadata = [asset commonMetadata];
for ( AVMetadataItem* item in metadata ) {
NSString *key = [item commonKey];
NSString *value = [item stringValue];
NSLog(@"extra iptions %@",[item extraAttributes]);
NSLog(@"key = %@, value = %@", key, value);

NSLog(@"keyspace and Local %@ %@",[item keySpace],[item key]);

}

但我真的很想知道如何获得 ISRC(国际标准记录编码)。

最佳答案

试试这个(警告:在浏览器中输入)

NSArray *metadata = [asset metadataForFormat:AVMetadataFormatID3Metadata];
if (metadata == nil) {
NSLog(@"No ID3 metadata for asset: %@", asset);
}
// From https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVFoundation_ID3Constants/Reference/reference.html

NSArray *filteredMetadata = [AVMetadataItem metadataItemsFromArray:metadata withKey:AVMetadataID3MetadataKeyInternationalStandardRecordingCode keySpace:nil];
AVMetadataItem *item = [filteredMetadata firstObject];
if (item != nil) {
NSLog(@"ISRC: %@", item.stringValue);
} else {
NSLog(@"No ISRC found for: %@", asset);
}

编辑:我应该提一下,您的原始代码没有打印 ISRC 值的原因是因为 ISRC 不是公共(public)元数据空间的一部分,并且不会包含在[asset commonMetadata] 返回的数组。 ISRC key 特定​​于 ID3 元数据,因此如果您的 Assets 没有与其关联的 ID3 元数据,您将无法检索该信息。

关于ios - 来自 AVMetadataItem objective-c 的 ISRC 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com