我在一个音频播放器工作,它是用Java和gui编写的。为了播放mp3文件,我选择了javazoom中的JLayer库,因为我看到它非常流行和使用。我制作了GUI,设法从播放列表中播放选定的mp3文件。
我的问题是,如果我多次按下播放按钮或播放列表中的文件,它将开始播放歌曲的次数与我按下它的次数一样多,并且我想在同一线程中播放它;如果我再次按下播放按钮,我想再次播放,而不是在当前播放的时候开始同一首歌。
public class Playing implements Runnable{
private Player mp3Player;
private Thread playerThread;
public void createPlayer(FileInputStream file) throws JavaLayerException{
mp3Player = new Player(file);
playerThread = new Thread(this);
playerThread.start();
}
@Override
public void run(){
try {
mp3Player.play();
}
catch (JavaLayerException ex) {
Logger.getLogger(Playing.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void createPlayButton(){
play = new JButton();
playButton = new ImageIcon("D:/Audio Player/Images/playButton.png");
play.setBounds(125, 100, 50, 50);
play.setIcon(playButton);
play.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < select.getFilesPath().size(); i++){
if (select.getFilesPath().get(i).toString().contains(playlistBody.getSongName())){
try {
mp3Player.createPlayer(new FileInputStream(new File(select.getFilesPath().get(i).toString())));
} catch (JavaLayerException ex) {
Logger.getLogger(PlayerBody.class.getName()).log(Level.SEVERE, null, ex);
} catch (FileNotFoundException ex) {
Logger.getLogger(PlayerBody.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
});
}
我提到我是多线程的新手,所以不要对我太苛刻。如果我不能用JLayer做到这一点,请推荐我一个好的库,我可以用它来播放mp3文件。事先谢谢你,我在等你的建议。
在您按下播放按钮并且线程已启动后使用此功能。一旦播放器启动,按钮将禁用,并在歌曲完成后再次启用
yourplaybutton.setEnabled(false);
我写了一个应用程序来播放mp3文件,我有控制和一切滚动,只是一个问题,每个mp3文件是单独播放,我必须触发一个新的文件播放。 我想知道我如何(按语法)判断玩家是否已经完成了一个文件的播放,这样我就可以继续下一个文件了? 这是线程代码
我正在创建一个带有背景音乐的应用程序。我试着在课堂上演奏那首音乐: 我试过了: 当我把它放在我的文件的根目录中并使用它时: 我得到这个错误:javax.sound.sampled。不受支持的AudioFileException:无法从输入URL获取音频输入流更新我尝试使用JavaFX: 但是我得到了错误: 此行中的错误:MediaPlayer Player=new MediaPlayer(媒体);
null 关键是我使用jLayer的实现不起作用:当我执行play-pause-resume时,音频被暂停,但随后从文件中的随机点恢复。 我该怎么修好它?
问题内容: 如何在以下代码中添加“播放/暂停”按钮? 问题答案: 您需要使用该类而不是just类,因为更简单的类不能真正开始在中间播放文件。 您需要添加一个并监听该方法。然后,您可以从停下来的那一刻起重新开始。 这将记住播放的帧已暂停(如果已暂停)。 现在,在暂停后再次按Play键时,您将检查文件中的数字是否介于0和帧数之间,然后调用。 请注意,在执行此操作之前,您应该知道文件中的帧数。如果没有,
问题内容: 如何在Java应用程序中播放和文件?我正在使用。我尝试在互联网上查找类似以下示例的内容: 但是,这只会播放文件。 问题答案: 如何在Java应用程序中播放和文件?我正在使用。我尝试在互联网上查找类似以下示例的内容: 但是,这只会播放文件。