再生するたびに PCM に変換する前に、CAF ファイルをキャッシュしたいと考えています。
例えば、
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 を満足させるにはどうすればよいですか? 私が使用できる別の方法はありますか?