2

一些函数,如 ExtAudioFileOpenURL,只接受 URL 作为文件的路径。这很好,但是如果您的文件在容器或内存缓冲区中,是否仍然可以创建指向此的 URL?

例如

char * w = read_sample_bytes(...);
CFURLRef url = CFURLCreateForBuffer(..., w, ...);
ExtAudioFileOpenURL(url, &extAudioFile);
etc..

还是我必须将数据提取到一个临时文件并为其创建一个 url?

4

2 回答 2

3

大概,您将首先创建一个AudioFileIDwith ,然后使用您需要的APIAudioFileInitializeWithCallbacks包装结果。使用这种方法在内存中创建/读取文件不需要 CF/NS-URL。ExtAudioFileWrapAudioFileIDExtAudioFile

于 2012-04-17T05:14:53.407 回答
0

您无法创建指向内存区域的 URL。

对于您的特定目的,您必须按照 Justin 的建议或使用Audio Queue Services

于 2012-04-17T07:13:16.303 回答