繁体   English   中英

在Java中使用.wav格式循环播放音频文件

[英]Loop audio files using .wav format in java

我正在尝试循环播放音频文件,但是当我尝试其他可用方法时,我的音乐无法播放。

我的基本代码是:

import java.io.*;
import sun.audio.*;

public class PlayMusic {


    public void playSound() {
        try {
            AudioPlayer p = AudioPlayer.player;
            AudioStream as = new AudioStream(new FileInputStream("02 River Flows In You.wav"));
            p.start(as);


        } catch (IOException IOE) {
        }
    }

我从未见过使用过sun.audio.AudioPlayer! 我一直使用javax.sound.sampled库。

也许你可以告诉我你是怎么遇到的。 在我看来,它看起来像是比较旧的代码(10年?),而且在有限的方面也有点。

我认为,如果您没有一次播放,则应尝试使用URL形式:

AudioStream audiostream = new AudioStream(url.openStream());
     AudioPlayer.player.start(audiostream);

然后尝试将代码循环? 在很大程度上取决于.start命令是否阻塞。 如果它启动一个单独的线程(最有可能),那么您将不得不弄清楚文件何时结束,而且我看不到提供任何执行此操作的命令! 该规范还列出了创建ContinuousAudioDataStream并进行管理的可能性。

除非我对该库不了解,否则建议使用javax.sound.sampled.Clip或javax.sound.sampled.SourceDataLine进行播放。 剪辑具有可设置为循环的布尔值,但需要先将整个文件加载到内存中。 SourceDataLine从URL或文件位置播放,并且可以实现一个侦听器来告诉您文件何时完成。

http://docs.oracle.com/javase/tutorial/sound/playing.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM