0

再生するたびに 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 を満足させるにはどうすればよいですか? 私が使用できる別の方法はありますか?

4

2 に答える 2

0

私は自分でそれを行ったことはありませんが、ドキュメントAudioFileOpenWithCallbacksから、メモリ バッファから読み取るコールバック関数を使用して実装する必要があると思います。

于 2012-09-05T17:39:38.503 に答える