2014-02-21 6 views
0

QNX neutrino RTOS를 사용하고 있습니다. QNX를 처음 사용합니다. 두 개의 스레드간에 IPC 메시징을 사용하여 첫 번째 프로젝트를 설정했습니다.QNX 마이크 샘플링 및 스피커 재생

마이크에서 입력을 샘플링하고 스피커에서 재생하는 다른 스레드에 PCM 패킷으로 저장/전송하는 마이크 "드라이버"로하려는 스레드 하나가 있어야합니다.

오디오 지원 라이브러리가 있습니까? 마이크 입력 및 스피커 출력을 녹음하는 가장 좋은 방법은 무엇입니까?

답변

1

예, QNX는 오디오 라이브러리와 함께 제공됩니다. 이 http://www.qnx.com/developers/docs/6.5.0_sp1/index.jsp?topic=%2Fcom.qnx.doc.neutrino_audio%2Fabout.html&cp=13_1

귀하의 QNX 시스템에 대한 .wav 파일과 "waverec을"재생을위한 "파도"라는 유틸리티 (명령)을 포함

오디오 라이브러리 (6.5 SP1 버전)이 위치에서 시작 설명되어 있습니다 마이크에서 오디오를 녹음하여 .wav 파일에 저장하는 것.

지원되는 명령 줄 옵션에 대한 정보를 얻으려면 "wave 사용"및 "waverec 명령 사용"명령을 사용할 수 있습니다.

문서는 파도의 완전한 소스 및 waverec 유틸리티가 포함되어 있습니다 :

wave.c : http://www.qnx.com/developers/docs/6.5.0_sp1/index.jsp?topic=%2Fcom.qnx.doc.neutrino_audio%2Fwavec.html

waverec.c : http://www.qnx.com/developers/docs/6.5.0_sp1/index.jsp?topic=%2Fcom.qnx.doc.neutrino_audio%2Fwaverec.html

오디오 녹음을 시작하기 위해 권장되는 방법과 재생은 먼저 웨이브와 바이너리가 시스템과 함께 출하되도록하는 것입니다. 그런 다음 제공된 소스를 빌드하고 다시 작동하게 한 다음 애플리케이션을 이해하고 가능하면 애플리케이션에 임베드한다. 샘플은 일반적이므로 샘플에 동적으로 구성된 특정 기능을 하드 코딩해야 할 수 있습니다.

샘플을 빌드하려면 libasound.so 라이브러리와 링크해야합니다. 최소한의 명령 줄 예 (테스트)는 armlev7 및 x86 용 wave.c를 구축 :

ntoarmv7-gcc wave.c -o wave -l asound 
ntox86-gcc wave.c -o wave -l asound 

당신이 IDE를 통해 구축하는 경우는 적절한 설정에 라이브러리를 추가해야합니다.

샘플 작업시 질문 사항을 게시하실 수 있습니다.

+0

대단히 감사합니다. 코디 (늦은 답신에 대해 죄송합니다. 전 W/E에서 벗어났습니다). 방금이 파일들을 가지고 그들과 놀기 시작할 것입니다. 나는 오디오 DDK를 얻을 필요가 있다고 생각하기 시작했다. 그러나 나는 금요일에 끝났을 때 (일부 자바 이슈) 설치하는데 어려움을 겪고 있었다 ... 이것은 훨씬 더 간단하게 보인다. 나는 당신을 제안에 데려 갈 것이다. 너무 질문을 게시 할! –

+0

"Maverick, QNX 6.4.0 (6.5.0 SP1로 업그레이드 중임)을 사용하여 해당 버전의 waverec.c를 찾았습니다. QNX C 프로젝트로 만들었지 만 빌드되지 않았습니다. 모든 asoundlib.h 함수에서 실패합니다. 헤더 파일이 있지만 일부 설명서를 읽은 후 실제 라이브러리가 QNX와 함께 제공되지 않을 수 있습니다 (일부 LGPL 문제). 웹에서 검색했지만 할 수 없습니다. 이 문제를 해결하는 방법을 참조하십시오 ... 어떤 아이디어가 있습니까? –

+0

오디오 기능은 libasound에 정의되어 있으므로 링크해야합니다.이를 수행 할 수있는 명령 줄 예제로 게시물을 업데이트했습니다 .. 오디오 DDK는 오디오 드라이버를 개발하고 싶다면.오디오 드라이버는 대개 BSP의 일부이므로 걱정할 필요가 없습니다. – maverick