2010-06-02 77 views
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)); 

回答

0

当在“设备管理器”中禁用音频设备时,我在Windows上出现相同的错误。我认为问题是 - 音频设备驱动程序,尝试更新或重新安装它。