首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java sound AudioSystem.getMixerInfo()问题

java sound AudioSystem.getMixerInfo()问题
EN

Stack Overflow用户
提问于 2011-08-30 03:05:04
回答 1查看 415关注 0票数 2

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

代码语言:javascript
运行
复制
????????? ???????? ??????? 
???????? (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俄语。有没有可能以某种方式解决?

EN

回答 1

Stack Overflow用户

发布于 2019-10-18 21:22:19

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

代码语言:javascript
运行
复制
 byte bytes[] = deviceName.getBytes("ISO-8859-1"); // <- from
 String value = new String(bytes, "Windows-1251"); // <- to

完整的代码如下所示:

代码语言:javascript
运行
复制
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);

    }

}

和输出:

代码语言:javascript
运行
复制
Primary Sound Driver
Динамики (Realtek High Definition Audio)
C24F390 (Аудио Intel(R) для дисплеев)
Port Динамики (Realtek High Definiti
Port C24F390 (Аудио Intel(R))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7234609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档