Java 音频捕获在Raspberry Pi中引发异常
在使用套接字传输到另一端之前,我使用以下JAVA方法捕获音频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
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问题有关