某些函数(如ExtAudioFileOpenURL)仅接受URL作为文件的路径。这很好但是如果你的文件在容器或内存缓冲区中,是否仍然可以创建一个指向这个的URL?
例如
char * w = read_sample_bytes(...);
CFURLRef url = CFURLCreateForBuffer(..., w, ...);
ExtAudioFileOpenURL(url, &extAudioFile);
etc..
或者我是否必须将数据提取到临时文件并创建一个URL?
答案 0 :(得分:3)
据推测,您首先要使用AudioFileID
创建AudioFileInitializeWithCallbacks
,然后使用ExtAudioFileWrapAudioFileID
将结果包装为您需要的ExtAudioFile
API。使用这种方法在内存中创建/读取文件不需要CF / NS-URL。
答案 1 :(得分:0)
您无法创建内存区域的URL。
出于特定目的,您必须执行Justin建议或使用Audio Queue Services。