如何在以下代码中添加“播放/暂停”按钮?
import javazoom.jl.player.Player; try{ FileInputStream fis = new FileInputStream("mysong.mp3"); Player playMP3 = new Player(fis); playMP3.play(); } catch(Exception exc){ exc.printStackTrace(); System.out.println("Failed to play the file."); }
您需要使用AdvancedPlayer该类而不是just类Player,因为更简单的类不能真正开始在中间播放文件。
AdvancedPlayer
Player
您需要添加一个PlaybackListener并监听该stop()方法。然后,您可以从停下来的那一刻起重新开始。
PlaybackListener
stop()
private int pausedOnFrame = 0; AdvancedPlayer player = new AdvancedPlayer(fis); player.setPlayBackListener(new PlaybackListener() { @Override public void playbackFinished(PlaybackEvent event) { pausedOnFrame = event.getFrame(); } }); player.play(); // or player.play(pausedOnFrame, Integer.MAX_VALUE);
这将记住播放的帧已暂停(如果已暂停)。
现在,在暂停后再次按Play键时,您将检查文件pausedOnFrame中的数字是否介于0和帧数之间,然后调用play(int begin, int end)。
pausedOnFrame
play(int begin, int end)
请注意,在执行此操作之前,您应该知道文件中的帧数。如果没有,您可以尝试通过以下技巧播放所有帧:
player.play(pausedOnFrame, Integer.MAX_VALUE);
话虽如此,该API似乎对您的情况不是很有帮助,但除了将其夹到其他库外,它是您可以做的最好的事情。