首页
学习
活动
专区
圈层
工具
发布

停止.wav
EN

Stack Overflow用户
提问于 2012-09-20 00:47:12
回答 1查看 524关注 0票数 0

我有从.wav文件播放声音的代码,但我无法停止歌曲,甚至无法退出程序,直到它结束。因为这是一首5分钟的歌,所以这是一个问题。这是我如何播放wav的代码:

代码语言:javascript
复制
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);
 }

 }

有没有更好的方法来做到这一点,或者有一种方法可以让我在中途停止这首歌?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2012-09-20 00:49:27

在单独的线程中播放音频文件。将UI放在可以访问"play“线程的不同线程中。当用户想要暂停时,您可以简单地暂停该线程。但是,如果您使用的任何库都没有这样的功能,我会感到惊讶……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12499230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档