【问题标题】:Looping Music in Java在 Java 中循环播放音乐
【发布时间】:2014-04-25 23:39:07
【问题描述】:

我试图让这个程序无限循环歌曲,但我只设法让它工作一次。有什么建议吗?

这是我的代码:

public static void music(){

    String filename = "darkAura.wav";
    ContinuousAudioDataStream loop = null;
    InputStream in = null;
    try {
        in = new FileInputStream(filename);
    } catch (FileNotFoundException ex) {
        System.out.println("File not found");
    }
    try {
        AudioStream s = new AudioStream(in);
        AudioData MD;
        AudioPlayer.player.start(s);
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    }

}

【问题讨论】:

  • 请查看Looping audio on separate thread in Java 发布在同一上下文中的内容。在问题本身中找到答案。
  • this answer中的代码有用吗?
  • 没有。调整后,这只会使声音停止。我使用计时器的那一刻,它不起作用。
  • 使用基于Java SoundClip。链接页面有一个循环声音的例子。

标签: java swing audio javasound


【解决方案1】:

您根本没有使用loop 变量。 试试这样:

AudioStream s = new AudioStream(in);     
AudioData audiodata = s.getData();
loop = new ContinuousAudioDataStream(audiodata);
AudioPlayer.player.start(loop);

【讨论】:

  • loop 声明在哪里?
  • 在他的代码中:ContinuousAudioDataStream loop = null;
  • ContinuousAudioDataStream 不起作用。当我尝试上面的解决方案时,我得到了这个:could not create AudioData object
  • 一种可能的解决方法是使用此处建议的官方声音 API:stackoverflow.com/questions/7676723/… 或使用此处建议的 JMF:stackoverflow.com/questions/3274775/… 播放文件大小可能会有所帮助,请参见此处:stackoverflow.com/questions/7676723/…跨度>
  • 到目前为止,我还无法使用它们中的任何一个来循环 .wav 文件。我无法让 JMF 导入工作,我无法更改文件大小,而且 API 解决方案根本不起作用。 :/ 总的来说,我想我会放弃它。
猜你喜欢
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 2020-07-06
  • 2011-08-31
相关资源
最近更新 更多