我正在使用通用UIPasteboard在我的音频合成应用程序中实现音频复制功能,以便复制的音频可以粘贴在 MAPI:AudioCopy / AudioPaste 或 Intua音频共享已启用的应用。此过程中似乎存在问题,并且复制的音频不会出现在启用AudioPaste的应用中。
这就是我要将音频复制到通用UIPasteboard中。
NSData *newItemData = [NSData dataWithContentsOfFile:[dataPath stringByAppendingPathComponent:@"converted.wav"]];
// This is the copy operation using the General Pasteboard otherwise known as the Intua Pasteboard
UIPasteboard *board = [UIPasteboard generalPasteboard];
[board setPersistent:TRUE];
NSData *dataFile = newItemData;
if (!dataFile) {
NSLog(@"Can't open file");
}
// Create chunked data and append to clipboard
NSUInteger sz = [dataFile length];
NSUInteger chunkNumbers = (sz / GP_CLIPBOARD_CHUNK_SIZE) + 1;
NSMutableArray *items = [NSMutableArray arrayWithCapacity:chunkNumbers];
NSRange curRange;
for (NSUInteger i = 0; i < chunkNumbers; i++) {
curRange.location = i * GP_CLIPBOARD_CHUNK_SIZE;
curRange.length = MIN(GP_CLIPBOARD_CHUNK_SIZE, sz - curRange.location);
NSData *subData = [dataFile subdataWithRange:curRange];
NSDictionary *dict = [NSDictionary dictionaryWithObject:subData forKey:(NSString *)kUTTypeAudio];
[items addObject:dict];
}
board.items = items;
执行此步骤后,当我启动与AudioPaste兼容的应用程序时,我看不到刚刚复制的音频。你能发现我的音频复制代码中的任何错误吗?
答案 0 :(得分:0)
我不相信你通过添加“converted.wav”来创建你的路径。在继续复制之前,我会检查文件路径是否存在。您可能会发现该路径看起来像“myAudioFile.wavconverted.wav”。
作为次要注释,[UIPasteboard generalPasteboard]返回的General Pasteboard始终是持久性的,因此您无需将其设置为持久性。