0
當我按下按鈕時,netbeans本身說:「線程中的異常」AWT-EventQueue-0「java.lang.IllegalArgumentException:無行匹配接口TargetDataLine支持格式PCM_SIGNED 44100.0 Hz,16位,單聲道,2字節/幀,支持big-endian。「 當該行不受支持時,應該彈出一條錯誤消息,提示「行不受支持」。相反,沒有任何反應。 我該怎麼辦?正在執行消息對話框
public class Ouvir extends NewJFrame{
AudioFormat audioFormat;
TargetDataLine targetDataLine;
TargetDataLine line;
void captureAudio(){
Listen.setEnabled(false);
try{
audioFormat = getAudioFormat();
DataLine.Info info = new DataLine.Info(TargetDataLine.class, audioFormat);
line = (TargetDataLine) AudioSystem.getLine(info);
AudioSystem.getLine(info);
if (!AudioSystem.isLineSupported(info)) {
String error = "Line not supported";
JOptionPane.showMessageDialog(null,error,"+",JOptionPane.ERROR_MESSAGE);
line.close();
}
line.open();
line.start();
}
catch (LineUnavailableException e) {}
}
void stopCapture(){
if(line != null)
{
line.stop();
line.close();
}
if(!Stop.getModel().isPressed())
{
line.stop();
line.close();
}
}
private AudioFormat getAudioFormat(){
return new AudioFormat(44100,16,1,true,true);
}
}
你在測試之前得到AudioLine是否支持 – MadProgrammer
我該如何解決這個問題?沒有完全獲得 –
您需要在AudioSystem.getLine(info)之前調用'AudioSystem.isLineSupported(info)',否則,你怎麼知道它是否可以被支持 – MadProgrammer