Plugins 当QuickLook被取消时,如何删除生成的临时文件?
我正在编写一个快速浏览插件,通过使用Plugins 当QuickLook被取消时,如何删除生成的临时文件?,plugins,temporary-files,ogg,quicklook,flac,Plugins,Temporary Files,Ogg,Quicklook,Flac,我正在编写一个快速浏览插件,通过使用ffmpeg将音频文件转换为AIFF,然后返回一个带有引用转换后的AIFF文件的标记的极简网页,可以生成一些音频文件的预览,如ogg和flac 除了我需要在临时文件夹中创建那些临时AIFF文件之外,一切都运行得很好。我一直在寻找一种方法,当用户关闭Quick Look窗口以删除我的AIFF文件时,可以获得回调,但我找不到 对于我来说,有没有一个好方法可以删除那些由Quick Look插件生成的临时文件?我自己花了一点时间试图解决这个问题,因为我试图创建一个插件
ffmpeg
将音频文件转换为AIFF,然后返回一个带有引用转换后的AIFF文件的
标记的极简网页,可以生成一些音频文件的预览,如ogg
和flac
除了我需要在临时文件夹中创建那些临时AIFF文件之外,一切都运行得很好。我一直在寻找一种方法,当用户关闭Quick Look窗口以删除我的AIFF文件时,可以获得回调,但我找不到
对于我来说,有没有一个好方法可以删除那些由Quick Look插件生成的临时文件?我自己花了一点时间试图解决这个问题,因为我试图创建一个插件来读取各种不受支持的图像格式。据我所知,视图关闭时无法收到回调通知,因为您将数据交给Quick Look,因此以后无法删除它们。如果可能,尝试将其转换为NSData对象,然后在HTML中对其进行编码。示例如下所示。对于您的情况,您只需替换以下部分:
[html appendString:@"<img src=\"cid:tabs.png\"><br>"];
其中props是主要的属性参考,audioData是表示aiff文件的NSData等。如果您在tmp中有来自其他处理的数据,一旦您使用NSData将数据加载到内存中,您应该删除tmp文件(请参阅)。您真的使用了
?我记得我用
尝试了cid:
把戏,但没有成功。不,我只是在玩图像。我试着用数据加载音频,所以我想这不是解决方案。奇怪的是,你可以播放这些文件,所以我认为这只是没有得到正确的模仿类型/其他魔法咒语。也许这是我的一件事。
[html appendString:@"<audio src=\"cid:converted.aiff\" controls autoplay><br>"];
NSMutableDictionary *audioProps = [[NSMutableDictionary alloc] init];
[audioProps setObject:@"audio/aiff" forKey:(NSString *)kQLPreviewPropertyMIMETypeKey];
[audioProps setObject:audioData forKey:(NSString *)kQLPreviewPropertyAttachmentDataKey];
[props setObject:[NSDictionary dictionaryWithObject:audioProps forKey:@"converted.aiff"] forKey:(NSString *)kQLPreviewPropertyAttachmentsKey];