首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AudioFileSetProperty返回“kAudioFileUnsupportedPropertyError(pty?)”

AudioFileSetProperty返回“kAudioFileUnsupportedPropertyError(pty?)”
EN

Stack Overflow用户
提问于 2011-12-28 16:17:26
回答 1查看 2.1K关注 0票数 5

我在编写音频文件的元数据时遇到困难:

代码语言:javascript
复制
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标记/元数据。

EN

回答 1

Stack Overflow用户

发布于 2012-01-24 05:04:57

在这里做同样的事情。可以使用以下代码检查OSStatus错误。

代码语言:javascript
复制
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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8658386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档