gpt4 book ai didi

ios - 从音频文件中提取流派元数据

转载 作者:行者123 更新时间:2023-12-03 16:46:11 26 4
gpt4 key购买 nike

我想从 mp3 或 m4a 文件中提取流派。元数据是存在的,正如在 iTunes 中看到的那样,我已经成功地为流派拉取了一些 NSData 对象,但在将任何内容映射到特定流派时遇到了困难。

此外, key 无法正确比较,因此我查找正确 key 的方法确实很糟糕。

我当前的代码如下所示。

- (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"]?@"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。

请问有什么帮助或建议吗?

最佳答案

ID3 标签的流派列表可以在这里找到: http://id3.org/id3v2.3.0

查看附录(第 8 节)。我不确定苹果究竟如何维护他们的标签数据库,但我强烈认为它是根据我包含的链接进行更新的。

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

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