如何向以下代码添加播放/暂停按钮?
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 http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/AdvancedPlayer.html类而不仅仅是Player
,因为比较简单的不能真正开始播放中间的文件。
你需要添加一个PlaybackListener http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/PlaybackListener.html并聆听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);
这将记住暂停播放的帧(如果暂停)。
现在,当暂停后再次按下“播放”时,您将检查是否pausedOnFrame
是 0 到文件中帧数之间的数字并调用play(int begin, int end) http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/advanced/AdvancedPlayer.html#play%28int,%20int%29.
请注意,在执行此操作之前,您应该知道文件中的帧数。如果你不这样做,你可以尝试通过这个技巧播放所有帧:
player.play(pausedOnFrame, Integer.MAX_VALUE);
也就是说,该 API 对您的情况似乎没有多大帮助,但除了切换到不同的库之外,这是您能做的最好的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)