我想用Java制作一个现场语音聊天程序,但我对Java中的录音/播放声音一无所知,所以在Google的帮助下,我想我已经能够从我的麦克风录制到一个字节数组,其中包含以下内容:
AudioFormat format = new AudioFormat(8000.0f, 16, 1, true, true);
TargetDataLine microphone;
try{
microphone = AudioSystem.getTargetDataLine(format);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
microphone = (TargetDataLine)AudioSystem.getLine(info);
microphone.open(format);
ByteArrayOutputStream out = new ByteArrayOutputStream();
int numBytesRead;
byte[] data = new byte[microphone.getBufferSize()/5];
microphone.start();
int bytesRead =0;
try{
while(bytesRead<100000){ //Just so I can test if recording my mic works...
numBytesRead = microphone.read(data, 0, data.length);
bytesRead = bytesRead + numBytesRead;
// System.out.println(bytesRead);
out.write(data, 0, numBytesRead);
}
catch(Exception e){
e.printStackTrace();
}
microphone.close();
catch(LineUnavailibleException e){
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
所以现在,根据我的理解,如果我调用out.toByteArray();,我应该得到一个我刚刚从麦克风录制的声音的字节数组.(我没有运行上面的错误,但没有办法证明它是否实际记录,因为我不希望将其输出到文件但没有这样做) …
在我的JPanel中,我有许多组件,包括其他JPanel,JLabel,JTextAreas和JButtons.因为我想实现一个教程模式,其中出现另一个窗口,我的主JPanel中的所有内容都被禁用,因为新窗口逐个解释每个'功能'...我想要知道如何禁用我内部的所有组件原始JPanel.我知道你可以用:
component.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但我不想为我的JPanel中的每个组件编写它.我想知道是否可以使用for循环或其他东西禁用JPanel中的所有组件?
注意:嵌套的JPanel中也有组件,就像顺序一样
主要JPanel --->嵌套JPanel --->组件
我也希望最终组件也被禁用......
谢谢!所有帮助表示赞赏!
我想创建一个可执行 Jar 文件,该文件在运行时检查该计算机上当前安装的 Java 版本并将其显示给用户。我在网上搜索过,但没有找到任何允许 Jar 文件检查的代码。我知道Java网站有它(http://www.java.com/en/download/installed.jsp)我找不到在Java代码中复制它的方法。任何帮助将非常感激。
注意:很抱歉,如果这个问题真的很愚蠢并且答案很简单......我只是花了半个小时试图找到解决方案,但我找不到解决方案,所以我需要你的帮助!谢谢
编辑:我不需要显示它的代码,只需获取版本就足够了,谢谢!