2
我想從mp3或m4a文件中提取流派。元數據是存在的,正如在iTunes中可以看到的那樣,我已經成功地將我們的一些NSData對象用於流派,但無法將任何內容映射到特定流派。從音頻文件中提取流派元數據
此外,鍵不恰當地比較,所以我找到正確的鑰匙的方法是黑客真的。
我目前的代碼如下所示。
- (NSDictionary*) getMetaDictionary:(AVAsset*)asset
{
for (NSString *format in [asset availableMetadataFormats]) {
for (AVMetadataItem *item in [asset metadataForFormat:format]) {
if (item.key && [item.keySpace isEqualToString:@"itsk"]) {
NSUInteger akey = NSSwapInt([(NSNumber *)[item key] unsignedIntValue]);
NSString *keyString = [NSString stringWithFormat:@"%.4s",&akey];
NSLog(@"key: %@ - value: %@", keyString, ([keyString isEqualToString:@"covr"][email protected]"nope":item.value));
if ([keyString isEqualToString:@"©gen"])
{
NSLog(@"Genre: %@", item.value);
}
if ([keyString isEqualToString:@"gnre"])
{
NSData* genData = [[NSData alloc] initWithData:((NSData*)item.value)];
NSString* genreString = [[NSString alloc] initWithData:genData encoding:NSASCIIStringEncoding];
NSLog(@"Genre from data: %@", genreString);
}
}
}
}
這將生成以下的輸出:
key: ©nam - value: Smokebelch II (Beatless Mix)
key: ©ART - value: The Sabres Of Paradise
key: ©wrt - value: Jose Padilla
key: ©alb - value: Café Del Mar - the Best of (Disc 1)
key: gnre - value: <0063>
我的理解是, 'gnre' 包含爲體裁的ID。你如何獲得該ID?我如何將其映射到實際的ID。
請提供任何幫助或建議嗎?