【问题标题】:Change Mixer to output sound to in java在java中更改混音器以输出声音
【发布时间】:2014-11-20 06:37:34
【问题描述】:

我正在尝试在我的虚拟音频电缆上播放 wav/mp3,我已经搜索了几个小时,但似乎找不到如何实现这一点。我已经能够以两种格式播放声音,但我无法将其输出到“Line-1”而不是“扬声器”

任何有用的链接或示例代码将不胜感激。

【问题讨论】:

    标签: java audio mp3 wav mixer


    【解决方案1】:

    要获取当前平台上所有Mixers的数组,可以使用AudioSystem#getMixerInfo

    static void printAllMixerNames() {
        for(Mixer.Info info : AudioSystem.getMixerInfo()) {
            System.out.println(info.getName());
        }
    }
    

    如果您的虚拟电缆可用,它将在阵列中。例如,在我的 Mac 上打印以下内容:

    Java 声音音频引擎 内置输入 音花 (2ch) 音花 (64ch) Pro Tools 聚合 I/O

    (Soundflower 是一个虚拟设备。)

    不幸的是,要获得一些特定的Mixer,您需要进行字符串评估。因此,您需要事先找到它的名称、供应商等,或者让用户可以从列表中选择一个。

    static Mixer getMixerByName(String toFind) {
        for(Mixer.Info info : AudioSystem.getMixerInfo()) {
            if(toFind.equals(info.getName())) {
                return AudioSystem.getMixer(info);
            }
        }
        return null;
    }
    

    一旦你有一个特定的Mixer,你就可以从中获得一个LineAudioInputStream。您可以通过AudioSystem#getClip(Mixer.Info)从中获取Clip

    我正在尝试播放 wav/mp3...

    javax.sound.sampled 不支持mp3Alternatives can be found here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多