我在编写音频文件的元数据时遇到困难:
AudioFileID fileID = nil;
AudioFileOpenURL((__bridge CFURLRef) url, kAudioFileReadWritePermission, 0, &fileID );
CFDictionaryRef piDict = nil;
UInt32 piDataSize = sizeof(piDict);
AudioFileGetProperty( fileID, kAudioFilePropertyInfoDictionary, &piDataSize, &piDict );
NSLog(@"%@", (__bridge NSDictionary *)piDict);
NSMutableDictionary *dict = (__bridge NSMutableDictionary*)piDict;
[dict setObject:@"NEW ALBUM NAME" forKey:@"album"];
piDict = (__bridge CFDictionaryRef)dict;
piDataSize = sizeof(dict);
OSStatus status = AudioFileSetProperty(fileID, kAudioFilePropertyInfoDictionary, piDataSize, &piDict);第6行的NSLog为我提供了一本包含ID3信息的好字典。但是,当我想改变(例如专辑名,第9行)时,我会得到一个OSStatus 'pty?‘作为回报。
能给我指点我做错了什么的人。或者更好/更简单/更快捷地编辑音频文件的ID3标记/元数据。
发布于 2012-01-24 05:04:57
在这里做同样的事情。可以使用以下代码检查OSStatus错误。
NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:status userInfo:nil];
NSLog(@"Error: %@", [error description]);我得到的是:
错误:错误Domain=NSOSStatusErrorDomain Code=1886681407“操作无法完成。(OSStatus错误1886681407。)
难道iOS只是不允许您修改kAudioFilePropertyInfoDictionary吗?
更新:
我刚刚将idlib3移植到iOS,您可以使用它来修改ID3标记。还包括一个示例项目。看看这里,https://github.com/rjyo/libid3-ios
https://stackoverflow.com/questions/8658386
复制相似问题