关于java AudioInputStream播放短音频没声音的问题

Posted ~的星辰大海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java AudioInputStream播放短音频没声音的问题相关的知识,希望对你有一定的参考价值。

参考java官网关于此问题的解释

播放短的音频时,在还没有播放时,程序就调用了stop事件,解决方法,为Clip添加一个监听器:

 1 import javax.sound.sampled.*;
 2 
 3 public class EarlyStopDemo {
 4     private Clip clip;
 5     
 6     public void go() throws Exception {
 7         AudioInputStream audioInputStream =
 8             Audiosystem.getAudioInputStream(
 9                 new java.io.File("testLong.wav"));
10         DataLine.Info info =
11                 new DataLine.Info(Clip.class, audioInputStream.getFormat());
12         clip = (Clip) AudioSystem.getLine(info);
13         clip.addLineListener(new LineListener() {
14                 public void update(LineEvent e) {
15                     if (e.getType() == LineEvent.Type.STOP) {
16                         synchronized(clip) {
17                             clip.notify();
18                         }
19                     }
20                 }
21             });
22         clip.open(audioInputStream);
23         clip.start();
24         synchronized (clip) {
25             clip.wait();
26         }
27         clip.close();
28     }
29 
30     public static void main(String[] args) throws Exception {
31         EarlyStopDemo acd = new EarlyStopDemo();
32         for (int i = 0; i < 10 ; i++ ) {
33             acd.go();
34         }
35     }
36 }

 

以上是关于关于java AudioInputStream播放短音频没声音的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何从 InputStream 转换为 AudioInputStream

AudioInputStream 正在抛出 NullPointerException

Audiosystem 过早停止写入 AudioInputStream

提高java中声音文件的播放速度

如何完全加载音频但稍后播放?

在java中怎么获取音频的总时长?