2017-02-10 20 views
0

오디오 유닛을 사용하여 오디오를 녹음 한 다음 해당 데이터를 HTTP를 통해 POST하는 데 사용하는 바인딩 된 쌍의 일부인 NSOutputStream에 해당 데이터를 쓰고 있습니다. 내 문제는 오디오 장치 녹음 콜백 및 NSOutputStream hasSpaceAvailable 콜백은 완전히 서로 독립적이므로 버퍼 언더런을 매우 빨리 가져옵니다. NSOutputStream에 오디오 녹음 콜백을 직접 매핑 할 수 있습니까?AudioUnit 콜백을 NSOutputStream과 동기화합니다.

답변

0

Apple DTS에 따르면 실시간 스레드 Audio Unit 콜백 내부에서 네트워킹이나 기타 동기화를 수행하지 않아야합니다.

그러나 네트워크 스트림의 hasSpaceAvailable 콜백에 직접 데이터를 게시 할 필요는 없습니다. 콜백 함수가 종료 된 후에 데이터를 게시 할 수 있습니다. 데이터가 사용 가능 해지면 공간을 사용할 수 있음을 알게되었습니다. 순환 대기열 또는 FIFO에 약간의 추가 오디오 데이터를 버퍼링하여 일부 데이터를 네트워크 속도 변동 및 대기 시간 지터를 커버하기 위해 보낼 수 있습니다.