2010-07-08 86 views
0

我想根据他们的样本量(每个样本的位数)两个音频文件之间的比较音频文件比较(JAVA)

我想知道如果这个代码说法正确的是:

AudioInputStream clip1 = AudioSystem.getAudioInputStream(soundFile1); 
AudioInputStream clip2 = AudioSystem.getAudioInputStream(soundFile2); 

     // check sample size  
     if (clip1.getSampleSizeInBits() != clip2.getSampleSizeInBits()) { 

     ...do something 
       } 

我得到这个错误(重复两次): 找不到符号 符号:方法getSampleSizeInBits()

我该怎么办?

其实我想要做的是检查差异,所以如果他们有不同的样本大小,用户应该会收到警告消息。

感谢您的帮助

乌尔里克

回答

2

getSampleSizeInBitsAudioFormat的方法,而不是AudioInputStream。您可以从AudioInputStreamgetFormat方法得到相应的AudioFormat,所以代码应为:

clip1.getFormat().getSampleSizeInBits() 
+0

谢谢你,但是如果我想使基于其他的功能,如采样率,声道,编码,比较我会如果(clip1.getFormat()!= clip2.getFormat()) 我的意思是其他功能是getFormat方法的一部分...是正确的吗? – Carlos 2010-07-08 06:27:24

+0

您仍然需要调用getFormat()。 见API的更多详细信息: http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/api/javax/sound/sampled/AudioFormat.html 和: HTTP: //download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/api/javax/sound/sampled/AudioInputStream.html – Catchwa 2010-07-08 06:38:51

+1

@Carlos:关闭。你必须写if(!clip1.getFormat()。matches(clip2.getFormat()))。 AudioFormat没有有效的等号方法。 – 2010-07-08 17:07:16