使用 Java 访问 CD-ROM
Posted
技术标签:
【中文标题】使用 Java 访问 CD-ROM【英文标题】:Access to CD-ROM using Java 【发布时间】: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
。
谁能帮我解决这个问题?
【问题讨论】:
【参考方案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 文件中。然后导入我的项目。我对吗?大卫你之前用过吗?以上是关于使用 Java 访问 CD-ROM的主要内容,如果未能解决你的问题,请参考以下文章
无法访问您试图使用的功能所在的CD-ROM或其他可移动式磁盘
通过 javascript 对 CD-Rom 上的静态 HTML 文件进行全文搜索