微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 JMF 录制音频设备?

如何解决如何使用 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 举报,一经查实,本站将立刻删除。