如何在 c++ 中删除使用 ExtAudioFileCreateWithURL 创建的文件

How to delete files created with ExtAudioFileCreateWithURL in c++?

本文关键字:ExtAudioFileCreateWithURL 创建 文件 删除 c++      更新时间:2023-10-16

我正在iOS上进行低级音频处理。因此,我的应用程序的某些部分是用 c++ 编写的。

在那里,我创建并写入音频文件。文件使用 ExtAudioFileCreateWithURL 创建,并使用 ExtAudioFileWriteAsync 写入。文件使用 ExtAudioFileDispose 关闭。

有时需要删除文件。

如何删除在 c++ 中使用 ExtAudioFileCreateWithURL 创建的文件?

由于文件是使用 CFURLRef 打开的,因此函数 CFURLDestroyResource 似乎是执行此操作的方法,但此函数已弃用,我不清楚什么会取代此函数。

我最终设法通过在 Objective-C 文件中编写一个辅助函数并从C++代码调用该函数来解决这个问题。

bool removeItemAtURL(CFURLRef url) {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    return [fileManager removeItemAtURL: (__bridge NSURL *)url error: NULL];
}

虽然这有效,但我不确定是否保存以在时间关键型音频渲染线程中使用 NSFilemanger 对象。如果是这样,那么最好让文件删除在不同的线程中处理。

相关文章:
  • 没有找到相关文章