swing的mp3播放器

一直在关注lfp001 大神的mp3解码文章.响应大神的号召,用swing给播放包加了个壳.本着拿来主义,仿照google的播放器,断断续续的写到现在,勉强可用.先上图(我正在用这个播放器,边听边写这段文章 )

 

2010/9/19:

添加了音量控制.但是在Ubuntu上暂时无法启用,原因未知...关于java的音量控制请看本人的博客文章.

修正了进度显示在60秒内未显示为0:xx,现在可以正常显示了

 

2010/10/8:

修正了暂停后会从头播放mp3的问题.

 


当然,现在功能及其简单,实现的功能如下:

编辑播放列表,即歌曲分组.在歌曲分组点右键.

播放/暂停

双击播放

选择播放

播放顺序设置

播放进度显示

加载播放列表(默认在jar包同一文件夹下)

关闭自动保存播放列表

音量控制(本次修改新加,但是修改了大神的Audio类,添加了一个获得control的方法,此方法已经告知大神.)

 

未实现:

快进

mp3详细信息显示和编辑

 

另,程序未经过详细测试,可能会抛异常.有问题请告诉我.

其他的诸如歌词,音量之类的慢慢来吧.

另,我怎么感觉random.nextInt(int)的随机结果真不随机...

另,其实我算法很不好,根本看不懂大神的解码代码

 

jmp123.zip是eclipse3.4的java工程,导入即可.

player.jar是可运行jar,双击打开.

 

已知bug:

切换mp3时,进度记时未准确停止,有可能造成无法自动切换

进度显示在60秒内未显示为0:xx

在Ubuntu上汉字是乱码,不可以正常保存播放列表

暂停在Ubuntu上会造成程序不响应,在win上会造成重新播放mp3

自动切换mp3后,可能有进度监听没有销毁,和当前进度监听争夺进度条的控制

播放一首mp3后,在不退出程序的情况下播放其他mp3,帧数和长度一致都保持为第一首mp3的数值.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java Swing中,可以使用Java Media Framework (JMF)来播放音乐。下面是一个简单的示例代码,演示如何播放mp3音乐并支持暂停: ```java import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.media.Manager; import javax.media.Player; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class MP3Player extends JFrame implements ActionListener { private Player player; private JButton playButton, pauseButton; public MP3Player() { super("MP3 Player"); playButton = new JButton("Play"); playButton.addActionListener(this); pauseButton = new JButton("Pause"); pauseButton.addActionListener(this); pauseButton.setEnabled(false); JPanel controlPanel = new JPanel(); controlPanel.add(playButton); controlPanel.add(pauseButton); getContentPane().add(controlPanel); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(300, 100); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == playButton) { try { player = Manager.createPlayer(new File("music.mp3").toURI().toURL()); player.start(); playButton.setEnabled(false); pauseButton.setEnabled(true); } catch (Exception ex) { ex.printStackTrace(); } } else if (e.getSource() == pauseButton) { player.stop(); player.close(); playButton.setEnabled(true); pauseButton.setEnabled(false); } } public static void main(String[] args) { new MP3Player(); } } ``` 在这个示例中,我们创建了一个简单的Swing应用程序,包含两个按钮:一个用于播放音乐,另一个用于暂停音乐。当用户单击“播放”按钮时,我们使用JMF创建一个Player对象,并开始播放音乐。当用户单击“暂停”按钮时,我们停止播放器并关闭音乐文件。 需要注意的是,为了使JMF能够播放mp3文件,您需要安装一个支持mp3格式的插件。您可以从Oracle官方网站上下载并安装这个插件。 ### 回答2: 在Java Swing中,要播放并支持暂停MP3音乐,可以使用Java Media Framework (JMF) 的库来实现。 首先,需要在项目中引入JMF的库文件,可以通过在项目的构建路径中添加JAR文件实现,确保可以使用JMF提供的类和方法。 接下来,可以使用以下代码片段来播放和暂停MP3音乐: 1. 导入所需的类和接口: import javax.media.*; import java.net.*; 2. 创建一个MediaLocator对象来指定音乐文件的位置: MediaLocator mediaLocator = new MediaLocator(new URL("file:/path/to/your/music.mp3")); 3. 创建一个Player对象来播放音乐,并使用start()方法开始播放: Player player = Manager.createPlayer(mediaLocator); player.start(); 4. 创建一个Boolean变量来记录音乐播放的状态: boolean isPlaying = true; 5. 在需要暂停音乐的地方,调用Player的stop()方法,并将isPlaying设置为false: player.stop(); isPlaying = false; 6. 在需要继续播放音乐的地方,调用Player的start()方法,并将isPlaying设置为true: player.start(); isPlaying = true; 通过以上步骤,可以在Java Swing播放MP3音乐,并支持暂停。需要注意的是,JMF对于MP3音乐的支持可能需要额外的库文件,需要根据具体情况进行配置和安装。 ### 回答3: 在Java Swing中,要播放MP3音乐并支持暂停,您可以使用Java内置的javax.sound.sampled包来实现。下面是一个简单的示例代码: 首先,需要导入所需的包: ```java import javax.sound.sampled.AudioSystem; import javax.sound.sampled.BooleanControl; import javax.sound.sampled.Clip; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; import java.io.IOException; ``` 然后,创建一个播放器类,并定义播放、暂停和继续播放的方法: ```java public class MusicPlayer { private Clip clip; private BooleanControl control; public void play(String filePath) { try { clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(getClass().getResource(filePath))); clip.start(); } catch (LineUnavailableException | IOException | UnsupportedAudioFileException e) { e.printStackTrace(); } } public void pause() { control = (BooleanControl) clip.getControl(BooleanControl.Type.PAUSE); if (control != null) { control.setValue(true); } } public void resume() { control = (BooleanControl) clip.getControl(BooleanControl.Type.PAUSE); if (control != null) { control.setValue(false); } } } ``` 在您的Swing应用程序中,您可以实例化并调用这个播放器类: ```java MusicPlayer musicPlayer = new MusicPlayer(); musicPlayer.play("/path/to/your/music.mp3"); // 根据实际的音乐文件路径进行替换 ``` 当需要暂停音乐时,调用`musicPlayer.pause()`方法。当需要继续播放时,调用`musicPlayer.resume()`方法。 这个简单的示例代码可以帮助您在Java Swing播放MP3音乐并支持暂停。当然,您还可以添加更多功能,如停止、调整音量等,以满足您的具体需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值