트릭은 UAID 청크와 같은 하위 수준 기능에 액세스하기 위해 ExtAudio API를 사용하지 않는다는 것이 밝혀졌습니다. (당신이 ExtAudio API를 통해 파일에 액세스해야하는 경우, 그것은 AudioFileID에서 ExtAudioHandle을 만들 수 있습니다.) 내가 이런 걸 사용 결국
:
AudioFileID fileID;
ExtAudioFileRef extFile;
OSStatus err = AudioFileOpenURL((CFURLRef)inURL, kAudioFileReadPermission, 0, &fileID);
if(noErr!=err)return;
err = ExtAudioFileWrapAudioFileID (fileID, false, &extFile); // in case we *also* want to access the file via ExtAudio
if(noErr!=err)return;
for(index=0; ; index++) {
UInt32 size=0;
char*data=NULL;
OSStatus err = AudioFileGetUserDataSize (fileID,'uuid',index,&size);
if(noErr!=err)break; // check whether we were able to read the chunksize
if(0==size)continue; // check whether there is some payload in the uuid chunk
data=calloc(size, 1);
if(!data)continue;
err = AudioFileGetUserData (fileID, 'uuid', index, &size, data);
if(noErr!=err){free(data); break;} // check whether we were able to read the chunksize
/* ... */
free(data);
}
ExtAudioFileDispose(extFile);
AudioFileClose(fileID);
을