我想缓存 CAF 文件,然后在播放时将它们转换为 PCM。
例如,
char *mybuffer = malloc(mysoundsize);
FILE *f = fopen("mysound.caf", "rb");
fread(mybuffer, mysoundsize, 1, f);
fclose(f);
char *pcmBuffer = malloc(pcmsoundsize);
// Convert to PCM for playing
AudioFileReadBytes(mybuffer, false, 0, mysoundsize, &numbytes, pcmBuffer);
这样,每当播放声音时,压缩的 CAF 文件就已经加载到内存中,从而避免了磁盘访问。如何使用“AudioFileID”打开一块内存以使 AudioFileReadBytes 满意?我可以使用另一种方法吗?