我現在有一個麥克風,它有兩個聲道,我需要同時使兩個聲道可以進行錄音,要怎么寫
AudioFormat audioFormat1 = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 16000,16, 1, 2, 16000, false);
AudioFormat audioFormat2 = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 16000,8, 2, 2, 16000, true);
TargetDataLine d1 = AudioSystem.getTargetDataLine(audioFormat1);
d1.open();
d1.start();
TargetDataLine d2 = AudioSystem.getTargetDataLine(audioFormat1);
d2.open();
d2.start();
這么寫,麥克風在d1打開后,再獲取d2,d2拋出例外,拿不到資源,
AudioFormat audioFormat1 = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 16000,16, 1, 2, 16000, false);
AudioFormat audioFormat2 = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 16000,8, 2, 2, 16000, true);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, new AudioFormat[]{
audioFormat1, audioFormat2, audioFormat1
}, AudioSystem.NOT_SPECIFIED, AudioSystem.NOT_SPECIFIED);
TargetDataLine targetDataLine1 = (TargetDataLine) AudioSystem.getLine(info);
然而我這么寫,最后只有AudioFormat串列的最后一個物件的通道可以用
有沒有大神知道這是為什么,求解
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27789.html
標籤:Java相關
