java 声音 api AudioSystem.getMixerInfo() 问题

标签 java api audio

我正在尝试从线路输入制作一些简单的 audiorecorder-player 但我遇到了一个非常烦人的问题:当我尝试使用 AudioSystem.getMixerInfo() 并打印出可用混音器的列表时,我得到

????????? ???????? ??????? 
???????? (SoundMAX Integrated Digital HD Audio) 
????????? SPDIF (SoundMAX Integrated Digital HD Audio) 
????????? ??????? ?????? ????? 
????? ?????????? (SoundMAX Inte 
???. ???? (SoundMAX Integrated 
Java Sound Audio Engine 
Port ???????? (SoundMAX Integrated D 
Port ????????? SPDIF (SoundMAX Integ 
Port ???. ???? (SoundMAX Integrated  
Port ????? ?????????? (SoundMAX Inte 

抱歉?不知道如何格式化文本,所以我放置了\n 来标记行结束的位置。

我不明白要选择什么设备,因为我什至看不懂大多数行中的俄语描述和设备名称。目前我正在使用 Win & x64 俄语。 有可能以某种方式解决吗?

最佳答案

我的回答有点晚了。但也许这会帮助您或其他面临同样问题的人。 我设法通过正确解码设备名称来解决它。

 byte bytes[] = deviceName.getBytes("ISO-8859-1"); // <- from
 String value = new String(bytes, "Windows-1251"); // <- to

完整代码如下:

public static void main(String[] args) throws UnsupportedEncodingException {

    Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
    for(int i = 0; i < mixerInfo.length; i++)
    {
        String deviceName = mixerInfo[i].getName();

        byte bytes[] = deviceName.getBytes("ISO-8859-1"); // <- from
        String value = new String(bytes, "Windows-1251"); // <- to

        System.out.println(value);

    }

}

输出:

Primary Sound Driver
Динамики (Realtek High Definition Audio)
C24F390 (Аудио Intel(R) для дисплеев)
Port Динамики (Realtek High Definiti
Port C24F390 (Аудио Intel(R))

关于java 声音 api AudioSystem.getMixerInfo() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234609/

相关文章:

java - 解释一下java代码的执行顺序或优先级?

java - Android SearchView 使用 FloatingActionButton

ios - 动态改变API数据获取结构

ios - 是否可以获取用户关注的 Google Plus Feed 的地理位置

java - 循环回到代码开头

java - Glassfish + mod_proxy_ajp 下载被截断

Javascript从Weather Underground "history"API获取数据

java - 在特定的声音设备java上播放声音

javascript - 立即播放大尺寸音频文件的问题

java - 耳机插孔监听器 Android