2011-03-01 5 views
0

매우 간단한 요청 일 수 있으므로 사과하는 경우입니다.AVAudioRecorder를 사용하여 오디오의 마지막 10 초만 기록하는 방법은 무엇입니까?

저는 AVAudioRecorder를 사용하여 아이폰의 마이크에서 사운드를 녹음하고 있습니다. 현재이 파일을 파일에 저장하고 있습니다. 사용자가 버튼을 탭한 다음 재생하면 녹음이 중지됩니다.

내 질문은 오디오 레코더가 지난 10 초간의 소리 만 저장하도록하는 방법입니다.

나는 플레이어가 지난 10 초간 만 플레이 할 수는 있지만 녹음 된 오디오 파일이 커지지 않도록 할 수 있음을 알고 있습니다. 나는 지난 10 초를 녹음하는 것을 선호한다.

답변

0

AVAudioRecorder API를 사용하지 마십시오. 그것은 당신이 원하는 것을 할 수 없습니다. Audio Queue API (또는 RemoteIO Audio Unit)를 사용하여 10 초 길이의 원형 버퍼에 샘플을 기록합니다 (크기가 1 메가 바이트 미만). 그런 다음 WAVE/RIFF 파일 헤더 다음에 .wav 파일에 샘플을 쓸 때이 순환 버퍼를 언 롤하십시오.

+0

안녕하세요 hotpaw2, 이에 대한 조언을 해 주셔서 감사합니다. 미안하지만 나는 오디오를 재생하기 전에 피치를 수정해야합니다. AudioQueue를 사용하여 이것을 할 수 있습니까? 아니면 openAL을 사용해야합니까? – bennythemink

+0

현재 OpenAL API만이 내장 리샘플링기를 포함합니다. 또는 자신의 리샘플링 코드를 작성하고 Audio Queue API를 사용할 수도 있습니다. – hotpaw2

+0

나는 내 자신의 리샘플링기를 작성하기에 충분할 정도로 오디오를 이해하지 못해 두려워서, 나는 단지 openal을 사용할 것이라고 생각한다. 당신의 충고에 다시 한번 감사한다. hotpaw2 – bennythemink

관련 문제