我正在使用QNX中微子RTOS,我是QNX的新手。我设置了我的第一个项目,在两个线程之间进行了一些IPC消息传递。
我想要做的是让一个线程作为麦克风“驱动程序”,该线程对来自麦克风的输入进行采样,并将其作为PCM数据包发送/发送到另一个从扬声器播放出来的线程。
那么,有没有音频支持库?实现录音麦克风输入和扬声器输出的最佳方法是什么?
最佳答案
是的,QNX带有音频库。
从此位置(6.5 SP1版本)开始记录了音频库:
http://www.qnx.com/developers/docs/6.5.0_sp1/index.jsp?topic=%2Fcom.qnx.doc.neutrino_audio%2Fabout.html&cp=13_1
您的qnx系统包括一个名为“ wave”的实用程序(命令),用于播放.wav文件,以及“ waverec”,用于录制来自麦克风的音频并将其保存为.wav文件。
您可以使用“ use wave”和“ use waverec”命令来获取有关受支持的命令行选项的信息。
该文档包含wave和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
建议从音频记录和播放开始的方法是,首先使系统附带的wave和waverec二进制文件正常工作。构建完提供的源代码之后,请使其再次工作,然后理解它并可能将其剥离后嵌入到您的应用程序中。 (因为该示例是通用示例,也许您想对示例中动态配置的某些功能进行硬编码)。
您需要链接libasound.so库以构建示例。
一个为armlev7和x86构建wave.c的最小命令行示例(已测试):
ntoarmv7-gcc wave.c -o wave -l asound
ntox86-gcc wave.c -o wave -l asound
如果通过IDE构建,则需要在适当的设置中添加库。
欢迎您在此处发布使用示例时可能遇到的任何问题。