diff -ruN original/CapturePlayback.java modified/CapturePlayback.java --- original/CapturePlayback.java 2007-01-18 13:15:04.000000000 +0400 +++ modified/CapturePlayback.java 2009-07-12 00:19:56.000000000 +0400 @@ -138,6 +138,7 @@ samplingGraph.start(); captB.setEnabled(false); pausB.setEnabled(true); + pausB.setText("Pause"); playB.setText("Stop"); } else { playback.stop(); @@ -158,6 +159,7 @@ auB.setEnabled(false); aiffB.setEnabled(false); waveB.setEnabled(false); + pausB.setText("Pause"); captB.setText("Stop"); } else { lines.removeAllElements(); @@ -229,7 +231,8 @@ try { this.file = file; errStr = null; - audioInputStream = AudioSystem.getAudioInputStream(file); + audioInputStream = AudioSystem.getAudioInputStream( + new BufferedInputStream(new FileInputStream(file))); playB.setEnabled(true); fileName = file.getName(); long milliseconds = (long)((audioInputStream.getFrameLength() * 1000) / audioInputStream.getFormat().getFrameRate()); @@ -385,6 +388,7 @@ } int numBytesRemaining = numBytesRead; while (numBytesRemaining > 0 ) { + if (!line.isOpen()) break; numBytesRemaining -= line.write(data, 0, numBytesRemaining); } } catch (Exception e) {