基于Java实现的音乐播放器

TrueLove

发布日期: 2021-04-30 08:35:16 浏览量: 174
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、课程题目

编写程序,在Applet中使用下拉框显示音乐文件的名字,在程序中使用AudioChip类控制播放的音乐文件,使用“播放”、“连续”、“停止”控制按钮选择播放音乐的状态。

二、题目分析与设计

2.1 题目需求

一个具有简单用户界面的播放器,有几首歌曲供用户选择播放。可以控制音乐的播放状态例如连续播放和停止播放。

2.2 界面设计及组件的布局策略

使用边界布局管理器,BorderLayout。将主题的Panel至于上部,即add(panel,BorderLayout.NORTH);。将供用户选择的音乐列表框与播放,连续,停止三个按钮添加到Panel中。即形成了简洁的用户界面。

2.3 论述程序逻辑的实现

主要是应用了audioclip定义音频对象,本地下载音乐放在music文件中和工程中.java文件置于同一目录下。为按钮添加事件监听。根据用户选择返回对象,然后通过audioclip的方法来控制音乐播放状态。

2.4 开发环境

Eclipse

三、测试分析

经过测试,基本功能正常,可以根据用户的选择播放对应的歌曲,播放按钮,停止按钮,循环按钮均能正确响应。

附录——源代码

  1. package musicplayer;
  2. import java.applet.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. public class MusicPlayer extends JApplet implements ActionListener{
  7. //定义音频对象
  8. AudioClip audioClip;
  9. JComboBox audioList;
  10. //按钮
  11. JButton buttonplay;
  12. JButton buttonloop;
  13. JButton buttonstop;
  14. //初始化
  15. public void init(){
  16. buttonplay = new JButton("播放");
  17. buttonloop = new JButton("循环");
  18. buttonstop = new JButton("停止");
  19. //添加监听事件
  20. buttonplay.addActionListener(this);
  21. buttonloop.addActionListener(this);
  22. buttonstop.addActionListener(this);
  23. //music列表
  24. String name1 = "Faded";
  25. String name2 = "Good Life";
  26. String name3 = "Rolling in the Deep";
  27. audioList = new JComboBox();
  28. audioList.addItem(name1);
  29. audioList.addItem(name2);
  30. audioList.addItem(name3);
  31. JPanel panel = new JPanel();
  32. panel.add(audioList);
  33. panel.add(buttonplay);
  34. panel.add(buttonstop);
  35. panel.add(buttonloop);
  36. add(panel,BorderLayout.NORTH);
  37. //运行窗口大小
  38. this.setSize(600,100);
  39. }
  40. //事件监听
  41. public void actionPerformed(ActionEvent e){
  42. if(e.getSource() == buttonplay){
  43. //如果还处于播放状态,则先停止
  44. if(audioClip != null){
  45. audioClip.stop();
  46. }
  47. audioClip = getSelectedAudioClip();
  48. audioClip.play();
  49. }
  50. if(e.getSource() == buttonstop){
  51. if(audioClip != null){
  52. audioClip.stop();
  53. }
  54. audioClip = getSelectedAudioClip();
  55. audioClip.stop();
  56. }
  57. if(e.getSource() == buttonloop){
  58. if(audioClip != null){
  59. audioClip.stop();
  60. }
  61. audioClip = getSelectedAudioClip();
  62. audioClip.loop();
  63. }
  64. }
  65. //返回选中对象
  66. private AudioClip getSelectedAudioClip() {
  67. // TODO Auto-generated method stub
  68. System.out.println(audioList.getSelectedItem());
  69. String selected = audioList.getSelectedItem().toString();
  70. //返回选中项对象
  71. return getAudioClip(getCodeBase(),"music/" + selected + ".wav");
  72. }
  73. }
上传的附件 cloud_download 基于Java实现的音乐播放器.7z ( 21.66mb, 6次下载 )
error_outline 下载需要9点积分

发送私信

放空的心,是最好的礼物;独走的路,是最美的风景

12
文章数
14
评论数
最近文章
eject