2012-09-05 2 views
0

재생할 때마다 CAF 파일을 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); 

이 방법. AudioFileReadBytes를 행복하게 만들려면 어떻게 'AudioFileID'로 메모리 블록을 열 수 있습니까? 내가 사용할 수있는 또 다른 방법이 있습니까?

답변

0

직접 해보지 않았지만 설명서에서 AudioFileOpenWithCallbacks을 사용하고 메모리 버퍼에서 읽는 콜백 함수를 구현해야한다고 생각했습니다.

관련 문제