저는 Core Audio Audio Unit를 사용하는 iPad 응용 프로그램 (튜너)을 가지고 있습니다. 마이크에서 신호를 읽고 처리합니다. 소리를 스피커로 울리지 않습니다.마이크 및 스피커 피드백
불행히도, 다른 시간에 신호는 실제로 피드백을 받고 스피커에서 나옵니다. 마이크와 스피커를 연결하지 않았지만 마이크가 어떻게 든 켜져 있다는 착각을 불러 일으킨다. 그것은 직접적인 신호가 아닙니다. 그것은 잘게 잘려서 일어나기 전에 다소 큰 소리를 내야합니다.
저는 이것이 CPU 오버로드와 관련이 있다고 우려하고 있습니다. 나는 콜백이 뒤지고 있다고 생각하지 않는다. 디버그 문을 콜백에 넣으면 Audio Unit을 끄면 멈추는 것처럼 보입니다. 또 다른 이상한 점이 있습니다. 특정 시간에 Audio Unit이 정지 된 경우에도 마이크에서 스피커까지 피드백이 계속 발생하여 끊김없는 잡음이 멈추기 전에 앱을 종료하고 백그라운드 처리 대기열에서 제거해야합니다.
이상하게도 이것은 매번 그리고 모든 테스터에게 발생하지는 않지만 종종 저어를 생성하기에 충분합니다.
네가 머리에 못을 박은 것 같아. 처리 과정을 줄이고 피드백이 사라졌습니다. "스스로"내가 뒤에 떨어지는 지 여부를 감지하려면 - inTimeStamp를보고 싶을 것입니다. 그리고 얼마나 많은 샘플이 들어 왔는지 알고 콜백 간의 시간이 아닌지 확인하기 위해 약간의 수학을 수행하십시오. 어떻게 든 성장하거나 일관되게 그 이상이어야합니다. 나는 버스 1 (마이크)에 연결되어 있고 오디오를 지역의 정적 버퍼로 렌더링하기 때문에 실제로 여기에 제로가 없는지 확실하지는 않습니다. 그러나 그 사실을 명심해야합니다. ioData 버퍼를 사용하기 시작합니다. –