2009-10-17 3 views
4

NSMutableData 객체를 사용하고 appendData 메서드를 사용하여 이전의 레코더 파일에 해당 데이터를 추가하는 녹음을 중지하여 AVAudioRecorder를 사용하여 오디오 파일을 15 초마다 저장합니다.NSData를 사용하여 iPhone에서 오디오 파일을 올바르게 결합하기

그런 다음 동일한 방법으로 다시 녹음하여 녹음이 "연속"되도록하십시오. 문제는 [레코더 정지]를하면 지정된 URL의 오디오 파일을 저장/종료하는 것입니다. NSData 객체를 NSData 객체에 채우고 NSMutableObject에 추가 한 다음 동일한 파일 url에 쓸 수 있기 때문에 괜찮습니다.

오디오의 첫 부분 만 재생하므로 머리글 정보에 문제가있어 야합니다.

제 질문은 두 개의 오디오 파일을 결합하고 AVAudioPlayer를 하나의 파일로 보는 것만 큼 간단하게 파일을 결합하는 방법입니다. 아마도 첫 번째 녹음에 두 번째 녹음을 추가 할 때 파일 길이/길이에 대한 헤더 정보가 엉망입니다.

아이디어가 있으십니까?

답변

1

오디오 파일에는 파일에 샘플 수와 데이터 청크 기간을 지정하는 헤더가 있습니다. 기존 파일에 추가 된 모든 데이터는 무시됩니다. 이것이 첫 번째 녹음 만 듣는 이유입니다.

오디오 파일을 원시 데이터처럼 추가하거나 연결할 수 없습니다. 각 파일에서 샘플 데이터 청크를 추출하고 데이터 만 연결 한 다음 데이터 길이 및 샘플 수 필드가 정확하게 채워진 새 파일 헤더를 작성하고 마지막으로 연결된 사운드 데이터 자체를 채워야합니다.

1

iPhone 오디오 API를 사용하면 복잡하지 않은 매우 큰/긴 오디오 파일을 만들 수 있습니다. 샘플 코드 SpeakHere를 보면 시간이지나면서 크기가 커질 수있는 사운드 파일을 만들 수 있습니다.