如何解决如何使用 JMF 录制音频设备?
因此,为了从计算机的麦克风录制音频,我需要使用 CaptureDeviceManager
返回计算机系统上安装的可用设备列表。这可以通过调用 getDeviceList(Format format)
来实现。但是,要创建 Format 的实例,我需要在构造函数 new Format(String encoding)
中指定一个编码字符串。我不确定该编码是什么,因为我只想返回所有可用设备的列表。 getDeviceList() 方法返回一个空的 Vector。
API 也对 getDeviceList(Format format) 方法进行了说明:
If no Format is specified,this method returns a list of CaptureDeviceInfo
objects for all of the available capture devices.
但是只有一个 getDeviceList() 方法需要格式。
解决方法
我不知道 JMF 是您想在这里使用的工具。也许有关于您的上下文的信息是相关的。 JMF 是相当古老的技术。如果您想使用 Java 检查音频资源,教程 Accessing Audio System Resources 中介绍了主要技术。
本教程包含一个代码示例,用于检查端口/线路以查看它们是否支持麦克风。 Sub DetectShapeOrText()
MsgBox ActiveWindow.Selection.Type
End Sub
类公开的方法广泛且灵活。
可以先用
Vector devs = CaptureDeviceManager.getDeviceList(null)
然后你就可以使用
devs = CaptureDeviceManager.getDeviceList(fmts);
fmts 在哪里
AudioFormat fmts=getAudioFormat();
和
private AudioFormat getAudioFormat() {
double sampleRate = 44100;
int sampleSizeInBits = 16;
int channels = 2;
boolean signed = true;
boolean bigEndian = true;
return new AudioFormat(AudioFormat.LINEAR,sampleRate,sampleSizeInBits,channels);
}
它曾经对我有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。