我认为标题说明了一切。我的Java程序使用声音,我想在启动时进行检查,而不是捕获异常。如果有帮助,我正在使用FreeTTS-https://freetts.sourceforge.io/。
最佳答案
您可以在java AudioSystem类中查询可用行:
/**
* Gets a list of all audio output devices in the system
*/
public static List<Mixer> getAvailableAudioOutputDevices() {
final ArrayList<Mixer> available = new ArrayList<>();
final Mixer.Info[] devices = AudioSystem.getMixerInfo();
final Line.Info sourceInfo = new Line.Info(SourceDataLine.class);
for (int i=0; i<devices.length; ++i) {
final Mixer.Info mixerInfo = devices[i];
final Mixer mixer = AudioSystem.getMixer(mixerInfo);
if (mixer.isLineSupported(sourceInfo)) {
// the device supports output, add as suitable
available.add(mixer);
}
}
return available;
}
请注意,这并不明确表示声卡,而是表示提供音频输出的设备。那不一定是一样的。