只有Windows版本支持audiorecorder的大多数功能。我有一个4麦克风阵列,我想分别使用每个。但我无法指定deviceID,因为Mac不支持它。它只使用默认设备。它显示以下警告:
Warning: DeviceID parameter can only be set on Windows
有没有选择这样做?
答案 0 :(得分:2)
我正在研究类似的问题:想要从2个麦克风录音。
首先:在Mac OS X上,早于r2011a的Matlab版本没有多输入设备支持。所以你必须升级到r2011a。 我在Matlab的r2011a发行说明中找到了(http://www.mathworks.com/help/pdf_doc/matlab/rn.pdf第18页)
audioplayer和audiorecorder支持设备全部选择 平台audioplayer和audiorecorder现在允许您指定 所有支持的平台上的输入或输出设备。在以前 发布时,您只能在Microsoft Windows系统上指定设备。
我现在正在测试它,但它似乎无法正常工作(内置输入无法处理44100Hz,16位,1通道录音): - /
升级到r2011a,我们将尝试一起解决这个问题。
的 强> 的 * * UPADTE * 强> 这是我做的: 列出所有音频设备:
>> audiodevinfo
ans =
input: [1x2 struct]
output: [1x1 struct]
列出每个输入设备:
>> audiodevinfo(1,0)
ans =
Built-in Microphone (Core Audio)
>> audiodevinfo(1,1)
ans =
Built-in Input (Core Audio)
测试所需的设备(对我来说是插头式麦克风):
>> audiodevinfo(1,1, 44100, 16, 1)
ans =
1
函数返回1,所以设备IS ABLE记录44100Hz,16bit,1channel音频信号。
创建连接到所需设备的audiorecorder对象:
r = audiorecorder(44100,16,1,1);
使用 recordblocking 功能录制音频(我不需要异步录制,更喜欢使用recordblocking而不是录制功能,因为我可以看到录制过程何时完成)。
播放。
播放(R);
一切正常对我来说很好:)。