오디오 유닛을 사용하여 오디오를 녹음 한 다음 해당 데이터를 HTTP를 통해 POST하는 데 사용하는 바인딩 된 쌍의 일부인 NSOutputStream에 해당 데이터를 쓰고 있습니다. 내 문제는 오디오 장치 녹음 콜백 및 NSOutputStream hasSpaceAvailable 콜백은 완전히 서로 독립적이므로 버퍼 언더런을 매우 빨리 가져옵니다. NSOutputStream에 오디오 녹음 콜백을 직접 매핑 할 수 있습니까?AudioUnit 콜백을 NSOutputStream과 동기화합니다.
0
A
답변
0
Apple DTS에 따르면 실시간 스레드 Audio Unit 콜백 내부에서 네트워킹이나 기타 동기화를 수행하지 않아야합니다.
그러나 네트워크 스트림의 hasSpaceAvailable 콜백에 직접 데이터를 게시 할 필요는 없습니다. 콜백 함수가 종료 된 후에 데이터를 게시 할 수 있습니다. 데이터가 사용 가능 해지면 공간을 사용할 수 있음을 알게되었습니다. 순환 대기열 또는 FIFO에 약간의 추가 오디오 데이터를 버퍼링하여 일부 데이터를 네트워크 속도 변동 및 대기 시간 지터를 커버하기 위해 보낼 수 있습니다.