0

.wav ファイルからサウンドを再生するコードがありますが、曲を停止したり、終了するまでプログラムを終了したりする方法がありません。これは5分の曲なので、これは問題です。これが私がwavを再生する方法のコードです:

public class EasySound{
   private SourceDataLine line = null;
   private byte[] audioBytes;
   private int numBytes;

   public EasySound(String fileName){
      File  soundFile = new File(fileName);
   AudioInputStream audioInputStream = null;
   try {
     audioInputStream = AudioSystem.getAudioInputStream(soundFile);
   } catch (Exception ex) {
   System.out.println("*** Cannot find " + fileName + " ***");
   System.exit(1);
   }

   AudioFormat audioFormat = audioInputStream.getFormat();
   DataLine.Info info = new DataLine.Info(SourceDataLine.class,
                     audioFormat);
   try {
   line = (SourceDataLine)AudioSystem.getLine(info);
   line.open(audioFormat);
   } catch (LineUnavailableException ex) {
   System.out.println("*** Audio line unavailable ***");
   System.exit(1);
   }

   line.start();

   audioBytes = new byte[(int)soundFile.length()];

   try {
   numBytes = audioInputStream.read(audioBytes, 0, audioBytes.length);
   } catch (IOException ex) {
     System.out.println("*** Cannot read " + fileName + " ***");
     System.exit(1);
   }
 }

 public void play() {
line.write(audioBytes, 0, numBytes);
 }

 }

これを行うためのより良い方法、または再生中に曲を停止できるようにする方法はありますか?

前もって感謝します!

4

1 に答える 1

0

別のスレッドでオーディオ ファイルを再生します。「再生」スレッドにアクセスできる別のスレッドに UI を保持します。ユーザーが一時停止したい場合は、そのスレッドを一時停止するだけです。使用しているライブラリにこのような機能がない場合は驚くでしょう....

于 2012-09-19T16:49:26.893 に答える