【问题标题】:Can't Loop MP3 File无法循环播放 MP3 文件
【发布时间】:2013-12-16 23:31:02
【问题描述】:

好的,所以我正在尝试在应用程序打开时让声音文件永远循环播放。这是目前我得到的运行声音文件的代码。

public class Game {

    public static void main(String[] args) {

        JFrame window = new JFrame("Josh's 2D College Project");
        window.setContentPane(new GamePanel());
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setResizable(false);
        window.pack();
        window.setVisible(true);

        try{

            File file = new File("C:/Users/Josh Scott (Zinotia)/Desktop/2D College Project/Resources/Sounds/BGSong.mp3");
            FileInputStream fis = new FileInputStream(file);
            BufferedInputStream bis = new BufferedInputStream(fis);

            try{

                Player player = new Player(bis);
                player.play();

            } catch(JavaLayerException ex) {}

        } catch(IOException e){} 
    }
}

我正在使用 JavaZoom 的 JavaLayer 来播放 Mp3 文件。谁能给我另一种方式来循环和使用声音文件,或者以不同的方式或使用JavaLayer

【问题讨论】:

标签: java


【解决方案1】:

为播放器添加监听器;

如果您使用 AdvancedPlayer 而不是 Player,则可以做到这一点。

AdvancedPlayer p = new AdvancedPlayer(bis)
p.setPlayBackListener(new Playbacklistener(){

    //override unimplemented methods
    @Override
    public void playbackFinished(PlaybackEvent evt){
        p.start()
    }

    @Override
    public void playbackStarted(PlaybackEvent evt){}
};

注意 - 这只是片段,您需要将其集成到您的代码中...

【讨论】:

    【解决方案2】:

    首先,获取 mp3 文件的确切长度。然后在第二个 try 语句中添加 while(true) 并在其中添加

    player.play();
    

    然后添加这个

    thread.Sleep(//mp3 length in milliseconds here)
    

    应该是这样的:

    try {
         Player player = new Player(bis);
         while(true) {
            player.play();
            Thread.Sleep(69000); //length of mp3 here
         }
    }
    

    你也可以试试

    try {
         Player player = new Player(bis);
         while(true) {
            player.play();
         }
    }
    

    但我不确定这是否可行,或者只是一遍又一遍地继续播放声音。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多