我正在尝试从线路输入制作一些简单的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俄语。 有可能以某种方式解决吗?
答案 0 :(得分:0)
我来迟了一点。但这可能会帮助您或面临相同问题的其他人。 我设法通过正确解码设备名称来解决此问题。
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))