【问题标题】:Access to CD-ROM using Java使用 Java 访问 CD-ROM
【发布时间】:2013-01-11 18:45:09
【问题描述】:

我想问一下是否有可能通过Java中的声音库访问cdrom设备。

我想做的是使 CD 模拟静音。我用google搜索了很久,但是没有关于这种操作的信息。我认为这是微不足道的或非常复杂的。

这个简单的代码列出了我的混音器:

try
{
    Mixer.Info [] mixerList = AudioSystem.getMixerInfo();
    for (Mixer.Info mixerInfo : mixerList)
    {
        System.out.println();
        System.out.println("MIXER: "+ mixerInfo.getName());
        Mixer mixer = AudioSystem.getMixer(mixerInfo);
        Line.Info[] li = mixer.getSourceLineInfo();
        System.out.println("LINES:");
        for (Line.Info info2 : li)
        {
            System.out.println(info2.toString());
        }

    }
} 
catch (Exception e)
{
    e.printStackTrace();
}

输出是:

混音器:主声音驱动器 线路: 接口 SourceDataLine 支持 8 种音频格式,以及至少 32 字节的缓冲区 支持 8 种音频格式的接口 Clip,以及至少 32 字节的缓冲区 混音器:扬声器(Realtek 高保真音频) 线路: 接口 SourceDataLine 支持 8 种音频格式,以及至少 32 字节的缓冲区 支持 8 种音频格式的接口 Clip,以及至少 32 字节的缓冲区 MIXER:主要声音捕捉驱动程序 线路: MIXER:桌面麦克风(电影院 - Mi 线路: 混音器:麦克风(瑞昱高清 线路: MIXER:端口扬声器(Realtek High Definiti 线路: MIXER:端口桌面麦克风(Cinema - Mi 线路: MICROPHONE 源端口 MIXER:端口麦克风(Realtek High Defini 线路: MICROPHONE 源端口

但是没有像 cd analog 这样的设备。当我尝试使用 Port.Info.COMPACT_DISC 从混音器获取特定端口时,出现异常 no such device

谁能帮我解决这个问题?

【问题讨论】:

    标签: java audio javasound cd


    【解决方案1】:

    看看java-avm库:

    java-avm (Audio Video Media) 是一个 Java API,用于访问和 控制磁盘驱动器,特别是 CD-ROM 和 CD-R(W) 驱动器, 可移动驱动器和环回设备。

    ...

    CD-ROM 特定:

    • 通过音量调节控制 CD 音频播放。

    【讨论】:

    • 只有在别无他法的情况下,我才想使用第三方库。
    • @user2018059 我不知道其他方法(可能通过 JavaScript 媒体 api 除外)。图书馆也不错,它们实际上很有帮助,并且在大多数情况下比我们自己做得更好,因为它已经有时间在许多平台上进行改进......你可以看到 3rd 方图书馆是如何做到的,但大多数可能使用 JNI。
    • 另请参阅Can Java Sound be used to control the system volume? 虽然这与使 CD 静音的任务略有不同,但 Java Sound 在这方面可能与更改系统音量一样有用。因此,我第二次建议@DavidKroukamp - 使用第 3 方 API。
    • 看来大卫的建议是不可避免的。但是如何使用呢?我很迷惑。据我了解,我需要下载这个包并将其构建到 jar 文件中。然后导入我的项目。我对吗?大卫你之前用过吗?
    猜你喜欢
    • 1970-01-01
    • 2017-02-19
    • 2023-03-31
    • 2015-06-23
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多