4
在linux操作系统上运行我的代码时出现以下异常。此代码在Windows操作系统上运行良好。以下是使用的异常和代码。在java中使用AudioFormat播放波形文件
java.lang.IllegalArgumentException:无行匹配接口支持格式PCM_SIGNED未知采样率,16位,立体声,4字节/帧,支持big-endian格式。
AudioFormat format = sourceaudio.getFormat();
format = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
format.getSampleSizeInBits() * 2,
format.getChannels(),
format.getFrameSize() * 2,
format.getFrameRate(),
true);
AudioFileFormat.Type targettype = AudioFileFormat.Type.WAVE;
AudioInputStream targetaudiostream = AudioSystem.getAudioInputStream(format, sourceaudio);
sourceaudio.close();
targetaudiostream.close();
System.out.println("55555555");
URL url = new URL("http://localhost:8084/newvideo/PCMfile.wav");
Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
clip.open(ais);
System.out.println("seconds: " + (clip.getMicrosecondLength()/1000000));