java 混音器_使用Java Sound API进行多通道USB录音?

我正在尝试使用Snow Leopard上的Java Sound录制/处理来自三个USB麦克风的一些音频(但如果可以解决问题,则可以切换到Windows)。 问题是,当我尝试使用与USB麦克风对应的混音器时,Java Sound告诉我不支持该行。 具体来说就是这样...

可用的调音台:

Java声音音频引擎

USBMIC序列号041270067

内置输入内置麦克风

声花(2ch)

声花(16ch)

线程“ AWT-EventQueue-0”中的异常 java.lang.IllegalArgumentException: 线路不受支持:界面 TargetDataLine支持格式 PCM_SIGNED 96000.0 Hz,8位,立体声, 2字节/帧,

...当我要求它选择USBMIC调音台时:

Mixer mixer = AudioSystem.

getMixer(mixerInfo[1]);

我尝试将音频格式与麦克风的确切规格(16位,44100Hz,立体声)匹配,并且没有任何区别。

问题出现在这里:

final TargetDataLine line = (TargetDataLine)

mixer.getLine(info);

混合器和TargetDataLine似乎彼此不喜欢。 有什么办法可以使这两个人“匹配”并相处吗?

我使用的麦克风确实有些奇怪。 它们被设计用于名为SingStar的卡拉OK电子游戏中。 麦克风本身具有标准的单声道线性输入连接器,可插入一个小的集线器(两个到一个集线器),将它们转换为单个公USB连接器。 除了奇怪之外,它们似乎在Audacity作为单独的通道时可以很好地工作,因此使用它们进行多通道录制显然是可能的,也许不是在Java中。

我还考虑过使用诸如Soundflower之类的程序在不同程序之间共享音频。 但是,我不确定这是否可行,因为我看不到如何将USB麦克风输入添加到Soundflower,然后将其通过管道传输到Java中。 一个快速的实验告诉我,我可以用麦克风录制Audacity中的音频,通过Soundflower将其传输出去,然后在Java程序中进行处理。 尽管如此,我想做的就是让所有这些实时发生在Java中。

有人熟悉这种问题吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值