iOS 장치의 마이크에서 오디오를 캡처하여 .caf 파일에 기록하려고합니다.원격 IO의 출력 요소에 콜백 연결
원격 I/O 오디오 장치를 MCMU (Multichannel Mixer Unit)에 연결하고 콜백을 MCMU의 입력에 연결할 수 있습니다. 콜백 내부에서 ExtAudioFileAsyncWrite()를 사용하여 마이크에서 오디오 데이터를 파일에 성공적으로 쓸 수 있습니다.
나는 단순화하고 그림에서 MCMU를 제거하고 싶다. 내 생각은 원격 IO의 입력 범위의 출력 버스와 그 콜백 호출 인 ExtAudioFileAsyncWrite() 내에서 콜백을 간단히 첨부 할 수있다.
그러나이 ExtAudioFileAsyncWrite()는 -50 (paramError)을 반환합니다.
원격 IO의 입력 요소의 출력 버스에 콜백을 연결할 수 있습니까?
감사합니다. 위의 잘못 입력 한 : 콜백 함수 내에서 AudioUnitRender() 호출 할 때 -50 오류가 반환됩니다. AudioUnitSetProperty()의 AudioUnitElement 인수가 0이 아닌 1이어야합니까? – Nick
전역 매개 변수의 경우 전역 범위에 "요소"가 없기 때문에 항상 0입니다. 이상하게 들리지만 실제로는 RemoteIO의 입력에 영향을 미치므로 Core Audio가 고려되는 한'kAudioOutputUnitProperty_SetInputCallback'은 입/출력 범위 매개 변수가 아닌 전역 범위 매개 변수입니다. – admsyn
또한'AudioUnitRender'의'paramErr'은 RemoteIO가 NULL/초기화되지 않았거나 부적절하게 설정되었거나'ioData' AudioBufferList가 잘못된 형식임을 의미합니다. "제대로 설정되지 않은"경우 이전 Core Audio 기능 중 하나가 아마도 OSStatus를 반환했을 것입니다. 그것이 NULL이라면, NULL이고, 그렇게해서는 안된다. (그러나 당신은 그것을 안다. :)). – admsyn