2010-04-04 5 views
1

iPhone 용 'aurioTouch'예제를보고 있는데 내장 마이크 대신 mp3 또는 wav를 재생하고 싶습니다. 나는 iPhone 프로그래밍의 오디오 부분에 새로운 것이지만 SetupRemoteIO (...) 함수를 수정하고 'comp'라는 AudioComponent를 파일을 재생하는 사용자 정의 AudioComponent로 대체해야한다고 생각합니다. 기본적으로 나는 앱이 원래의 것과 똑같이 작동하도록하지만, 마이크 대신에 오디오 파일을 입력으로 사용하기를 원합니다.RemoteIO 및 오디오 장치를 사용하여 오디오 파일 재생

답변

3

오디오 파일을 pcm 데이터로 변환 한 다음 재생 콜백 중에 RemoteIO 인터페이스로 보내면됩니다.

오디오 파일을 읽으려면 ExtAudioFileOpenURL 및 ExtAudioFileRead를 사용하는 것이 좋습니다. 또한 ExtAudioFileSetProperty로 오디오 형식을 설정하여 대상 pcm 형식 (압축 된 부호있는 정수 PCM 데이터)으로 변환해야합니다.

재생은 RemoteIO 콜백 (aurioTouch의 예제와 동일해야 함)에 응답하고로드 한 PCM 데이터를 제공하기 만하면됩니다.

유일한 다른 까다로운 부분은 PCM이 많은 메모리를 차지할 수 있으므로 전체 mp3 파일을로드한다는 것입니다. mp3의 관련 덩어리 만로드하여 메모리 요구 사항을 유지할 수 있도록로드 스레드를 작성해야 할 수도 있습니다.