audioPlayerRecorder在同步播放和录制期间返回一个零数组
15次浏览(过去30天)
显示旧的注释
嗨,我正在尝试使用audioPlayerRecorder对象同时播放和录制。我有一个多通道的粉红色噪声信号,我在我的脚本中生成,我使用它作为audioToDevice矩阵。我有一个音频接口(Focusrite Scarlett 18i20)加上放大器输出到扬声器和相同的音频接口输入。下面是我如何设置audioPlayerRecorder对象:
设备=Focusrite USB ASIO;
Num_ch_out = 3;
Num_ch_in = 3;
Fs = 48000;
apr = audioPlayerRecorder(“SampleRate”Fs,...
“设备”设备,...
“BitDepth”,24位整数的,...
“PlayerChannelMapping”1: num_ch_out,...
“RecorderChannelMapping”1: num_ch_in);
audioFromDevice = apr(audioToDevice);
在调用apr对象进行回放和录制时,我所连接的扬声器将输出我期望它输出的内容。但我得到的audioFromDevice矩阵是48000x3个零数组。我检查了所有的连接,一切正常。我知道链中所有通道/设备的增益,我用它们来缩放输入/输出信号。
我是否使用audioPlayerRecorder对象不正确?旁注:延迟对我来说不是很重要,因为我有不同的代码部分来处理这个问题。现在,我只想能够同时播放和录制。
或者,我尝试使用audioDeviceWriter和audioDeviceReader来实现同样的目的,但我也遇到了问题:缓冲区大小需要两个对象相同,但在相同的“持续时间”中,由于写入器对象播放了一个48000个样本长的信号,读取器对象只获取并返回相当于缓冲区大小(2048)的样本数量。
注意:我在PC上,需要使用ASIO驱动程序,所以我不能使用audioplayer, audiorecorder对象,因为它们默认为Windows Direct Sound驱动程序,只支持双通道播放。金宝app
编辑:将“双通道粉红噪音”更改为“多通道粉红噪音”