내부에 인코딩 된 PCM 오디오가있는 여러 CAF 파일을 조인 할 수 있습니다. 먼저 CAF 파일 중 하나에서 데이터 형식을 읽습니다. PCM 데이터 포맷에 대한여러 ALAC 파일을 결합합니다.
UInt32 size = sizeof(srcFormatDescription);
status = AudioFileGetProperty(srcAudioFile, kAudioFilePropertyDataFormat, &size, &srcFormatDescription);
이
[Line 7697] mSampleRate: 44100.000000
[Line 7698] mFormatID: 1819304813d
[Line 7699] mFormatFlags: 12d
[Line 7700] mBytesPerPacket: 2d
[Line 7701] mFramesPerPacket: 1d
[Line 7702] mBytesPerFrame: 2d
[Line 7703] mChannelsPerFrame: 1d
[Line 7704] mBitsPerChannel: 16d
[Line 7705] mReserved: 0d
그럼 내가 모든 CAF의를 포함하는, 대상 파일에 대한 데이터 형식을 설정할 것 같습니다. 다음 단계에서
destFormatDescription = srcFormatDescription;
status = AudioFileCreateWithURL(dest, kAudioFileCAFType, &destFormatDescription, kAudioFileFlags_EraseFile, &destAudioFile);
나는 CAF
status = AudioFileReadBytes(srcAudioFile,
FALSE,
currentStartForReading,
&bytesNumberToRead,
buffer);
에서 데이터를 읽고는
status = AudioFileWriteBytes(destAudioFile,
FALSE,
writePosition,
&bytesNumberToWrite,
buffer);
이 단계가 루프에서 수행된다 destAudioFile하는 물품. 그것은 위대한 작품. 그러나 큰 문제가 있습니다. 이제 ALAC 형식의 데이터가 포함 된 CAF 파일에 대해 동일한 단계를 수행하려고합니다. 작동하지 않습니다. AudioFileWriteBytes는 반환 된 오류 연산을 지원하지 않습니다. ALAC 데이터 형식
아무도 내가 내 애플 무손실 데이터와 여러 CAF 파일을 가입 할 수있는 방법을 알고 있나요이
[Line 7697] mSampleRate: 44100.000000
[Line 7698] mFormatID: 1634492771d
[Line 7699] mFormatFlags: 1d
[Line 7700] mBytesPerPacket: 0d
[Line 7701] mFramesPerPacket: 4096d
[Line 7702] mBytesPerFrame: 0d
[Line 7703] mChannelsPerFrame: 1d
[Line 7704] mBitsPerChannel: 0d
[Line 7705] mReserved: 0d
처럼 보인다?
귀하의 aproach는 괜찮아 보입니다. 사용하겠습니다. 고마워. – pawelropa
@ user1212112 예, 불행히도,이 작업은 희망만큼 간단하지 않습니다. 그러나 ExtAudioFile 변환기는 많은 복잡성으로부터 해방시켜줍니다. 행운을 빈다. 환영 받는다. – justin