我正在尝试从线路输入制作一些简单的录音机-播放器,但我遇到了一个非常恼人的问题:当我尝试使用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俄语。有没有可能以某种方式解决?
发布于 2019-10-18 21:22:19
我回答得有点晚了。但也许这会对你或其他面临同样问题的人有所帮助。我设法通过正确解码设备名称来解决这个问题。
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))https://stackoverflow.com/questions/7234609
复制相似问题