b***i 发帖数: 3043 | 1 例如:
try {
audioInputStream = AudioSystem.getAudioInputStream(url);//soundFile);
format = audioInputStream.getFormat();
totallength = audioInputStream.getFrameLength()*format.getFrameSize();
waveData = new byte[(int)totallength];
int total=0;
int nBytesRead = 0;
try {
while (nBytesRead != -1 && total
nBytesRead = audioInputStream.read(waveData, total, (int)
totallength);
if (nBytesRead>0)
total+=nBytesRead;
}
这样,format,totlalength和.read各自读了一次。如何避免这种情况? | g*****g 发帖数: 34805 | 2 直接当作简单的binary,下载完了再读就不会有问题。
不过我很怀疑是否真像你说的读了一遍。可能就是读了个Header,对性能没啥影响。 | b***i 发帖数: 3043 | 3 谢谢阿
主要是服务器端怕受不了。我试试bytearrayinputstream,是这个吧。
【在 g*****g 的大作中提到】 : 直接当作简单的binary,下载完了再读就不会有问题。 : 不过我很怀疑是否真像你说的读了一遍。可能就是读了个Header,对性能没啥影响。
|
|