Java 音频捕获在Raspberry Pi中引发异常

Java 音频捕获在Raspberry Pi中引发异常,java,raspberry-pi,raspbian,Java,Raspberry Pi,Raspbian,在使用套接字传输到另一端之前,我使用以下JAVA方法捕获音频 private AudioFormat getAudioFormat() { float sampleRate = 8000.0F; int sampleSizeInBits = 8; int channels = 1; boolean signed = true; boolean bigEndian = false; return new AudioFormat(sampl

在使用套接字传输到另一端之前,我使用以下JAVA方法捕获音频

private AudioFormat getAudioFormat() {
     float sampleRate = 8000.0F;
     int sampleSizeInBits = 8;
     int channels = 1;
     boolean signed = true;
     boolean bigEndian = false;
     return new AudioFormat(sampleRate, sampleSizeInBits, channels,
           signed, bigEndian);
  }

  private void captureAudio() throws Exception {
     try {
        System.out.println("Capturing audio........");
        AudioFormat audioFormat = getAudioFormat();
        DataLine.Info dataLineInfo = new DataLine.Info(
              TargetDataLine.class, audioFormat);
        Mixer mixer = null;
        System.out.println("Available mixers:");
        for (int cnt = 0; cnt < mixerInfo.length; cnt++) {
           mixer = AudioSystem.getMixer(mixerInfo[3]);
           if (mixer.isLineSupported(dataLineInfo)) {
              System.out.println(mixerInfo[cnt].getName());
              targetDataLine = (TargetDataLine) mixer
                    .getLine(dataLineInfo);
           }
        }
        targetDataLine.open(audioFormat);
        targetDataLine.start();

        while (true) {
           int cnt = targetDataLine.read(tempBuffer, 0,
                 tempBuffer.length);
           System.out.println("Read buffer......."+cnt);
           out.write(tempBuffer);
           out.flush();
        }


     }
     catch (Exception e) {
        System.out.println(e);
        throw e;
     }
  }
private AudioFormat getAudioFormat(){
浮式取样器=8000.0F;
int sampleSizeInBits=8;
int通道=1;
布尔符号=真;
布尔bigEndian=false;
返回新的音频格式(sampleRate、sampleSizeInBits、频道、,
签名,bigEndian);
}
私有void captureAudio()引发异常{
试一试{
System.out.println(“捕获音频…”);
AudioFormat AudioFormat=getAudioFormat();
DataLine.Info dataLineInfo=新的DataLine.Info(
TargetDataLine.class,音频格式);
Mixer=null;
System.out.println(“可用混合器:”);
对于(int cnt=0;cnt
但是当我在Raspberry Pi 2模型B上运行完整代码时,它抛出java.lang.NullPointerException,同时引用调用captureAudio()和targetDataLine.open(audioFormat)的行

是因为我的捕获设备没有正确安装在Raspberry Pi上,还是与bigEndian问题有关