2017-04-10 1 views
0

나는 오디오를 녹음하고 다른 사용자에게 스트리밍하는 앱을 사용하고 있습니다. 그것은 기본적으로 VoIP 통화입니다. 내가 겪고있는 문제는 피어로 스트리밍하는 오디오가 약 0.5 초 지연된다는 것입니다. 이것은 꽤 두드러지며, 둘 다 동시에 이야기하려고 할 때 약간 성가시다.Swift - AVFoundation을 사용하여 오디오를 녹음 할 때 지연을 제거하는 방법

이것이 AVFoundation의 AVAudioEngine에 공통적인지, 아니면 내가 설정 한 방식과 관련이 있는지 궁금합니다.

AVAudioEngine에서 알려진 문제가 아닌 경우 소스 코드를 포함 할 수 있습니다. 그렇지 않으면 지연 시간이 가장 짧은 오디오를 녹음하는 최적의 경로를 제안 해주십시오.

나는 또한 상당히 높은 수준이며 신속한 3/3.1과 호환되는 것을 선호 할 것입니다. 그러나 이러한 요구를 충족시키는 솔루션이 없다면 가장 적합하다고 판단되는 도구를 권장하십시오.

감사합니다.

답변

0

지원되는 최소 bufferSize가 100 ms 또는 sampleRate * 0.1 인 "AVAudioEngine.inputNode.installTap"함수를 호출해야합니다.

+0

입력 해 주셔서 감사합니다. 그래서 버퍼 크기를 100으로 설정하려고 시도했지만 기본적으로 4410으로 보입니다.이 코드는 내 코드입니다. localInput? .installTap (onBus : 0, bufferSize : 100, format : localInputFormat) {(buffer, when) Void in 그러나 buffer.frameCapacity와 buffer.frameLength는 모두 4410입니다 ... – Kember

+0

bufferSize 매개 변수 - 샘플의 오디오 버퍼의 기본 크기 (!). sampleRate가 44100이면 지원되는 최소 bufferSize는 4410입니다. "100"을 "4410"으로 바꾸십시오. –

+0

기본적으로 bufferSize는 4410입니다. 따라서 불행히도이 방법은 작동하지 않습니다. – Kember

관련 문제