2012-09-05 63 views
0

我想將它們轉換爲PCM時,他們打之前緩存CAF文件。AudioFileReadBytes,不是一個文件

例如,

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幸福嗎?有另一種方法可以使用嗎?

回答

0

我沒有做我自己,但是從文件我認爲你必須使用AudioFileOpenWithCallbacks和實施從你的記憶緩衝區讀取回調函數。

相關問題