【发布时间】:2018-12-01 11:25:25
【问题描述】:
我是 Portaudio 的新手,我使用名为 Matrix Creator 的设备将它安装在 Raspberry Pi 上。 Matrix Creator 使用所有 GPIO 引脚连接 Pi,上面有 8 个麦克风。
我想使用 Portaudio 实现实时音频流(在录制的同时播放声音,或同时播放麦克风收集的任何内容)。
根据Portaudio website,它说我们必须知道 inputStream 和 outputStream 的设备 ID。我使用函数 Pa_GetDeviceCount 来检查 Pi 可以检测到什么,代码如下所示:
int numDevices = Pa_GetDeviceCount();
cout<<"Device num: "<<numDevices<<endl;
const PaDeviceInfo * deviceInfo;
for(int i = 0; i < numDevices; i++){
deviceInfo = Pa_GetDeviceInfo(i);
cout<<"Device info of "<<i<<"is :"<<deviceInfo;}
我得到的结果:
Device num: -10000
问题 1
有什么方法可以获取我的 Matrix 麦克风的设备信息?
问题 2
由于我无法获取输入设备 ID,并且我仍然想使用缓冲区将从 mics 接收到的数据作为我的 inputStream 传递,(我可以将 mics 接收到的所有信号放入 2D 缓冲区,code),如何实现实时音频采集和播放?
【问题讨论】:
标签: c++ raspberry-pi real-time audio-streaming portaudio