当前位置:文档之家› 基于java的音乐播放器的设计源代码+实验报告

基于java的音乐播放器的设计源代码+实验报告

主类M U S I C P L A Y E R类:import .*;public class MusicPlayer implements ActionListener, Serializable,ControllerListener {private static final long serialVersionUID = 1L;private JFrame frame = null;private JPanel controlPanel = null;private JButton btnPlay = null;private JButton btnPre = null;private JButton btnNext = null;private JScrollPane listPane = null;private JList list = null;private DefaultListModel listModel = null;private JMenuBar menubar = null;private JMenu menuFile = null, menuAbout = null, menuMode = null;private JMenuItem itemOpen, itemOpens, itemExit, itemAbout;private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom;private ListItem currentItem = null;private static Player player = null;private boolean isPause = false;private int mode;private int currentIndex;private ImageIcon iconPlay = new ImageIcon("d:\\");private ImageIcon iconPre = new ImageIcon("d:\\");private ImageIcon iconNext = new ImageIcon("d:\\");private ImageIcon iconPause = new ImageIcon("d:\\");public static void main(String[] args){new MusicPlayer();}public MusicPlayer(){init();}public void init(){frame = new JFrame();("音乐播放器");(400, 300);(false);(null);;menubar = new JMenuBar();menuFile = new JMenu("文件");menuAbout = new JMenu("关于");menuMode = new JMenu("播放模式");itemOpen = new JMenuItem("添加文件");itemOpens = new JMenuItem("添加文件夹");itemExit = new JMenuItem("退出");itemAbout = new JMenuItem("关于");(this);(this);(this);(this);itemSequence = new JRadioButtonMenuItem("顺序播放"); (true);itemSingle = new JRadioButtonMenuItem("单曲循环"); (this);itemRandom = new JRadioButtonMenuItem("随机播放"); (this);(this);ButtonGroup bg = new ButtonGroup(); (itemRandom);(itemSequence);(itemSingle);(itemOpen);(itemOpens);(itemExit);(itemAbout);(itemSequence);(itemSingle);(itemRandom);(menuFile);(menuAbout);(menuMode);(menubar);(new BorderLayout());controlPanel = new JPanel();(new FlowLayout());btnPlay = new JButton(iconPlay);btnPre = new JButton(iconPre);btnNext = new JButton(iconNext);(this);(this);(this);(btnPre);(btnPlay);(btnNext);listPane = new JScrollPane();listModel = load();list = new JList(listModel);if () == -1 && () > 0){currentItem = (ListItem) (0);(0);currentIndex=0;}().add(list);(new MouseAdapter(){public void mouseClicked(MouseEvent e){if () == 2){if(player!=null){();(iconPlay);}currentIndex = ());currentItem = (ListItem) (currentIndex);(currentIndex);play();}}});(new BorderLayout());(controlPanel, ;(listPane, ;(true);};public void actionPerformed(ActionEvent e){if () == itemOpen){oLowerCase().endsWith(".mp3")|| ().toLowerCase().endsWith(".wav"))return true;return false;}});for (File file : files){ListItem item = new ListItem(), ());(item);}save(listModel);}}else if () == itemExit){(0);}else if () == itemAbout){(frame, "作者:陆鑫");}else if () == btnPlay){u,.mid,.wav等。

对于其他格式的文件,可以用相应地工具软件将它们转换为.au 或.mid等Java支持的文件。

在Applet中播放声音文件有两种方法:(1)在Java的API中,Applet类提供了一个方法play(),它可以直接根据URL 地址来播放声音。

这个方法指定如下:Public void play(URL url);Public void play(URL url,string soundFile);在第一种方法的定义中,参数url是保存声音文件的绝对URL地址,即统一资源定位,它指定Web网上的一个声音文件;在第二种方法定义中,参数URL是保存声音文件的基地址,而参数soundFile是声音文件的文件名。

如果声音文件与Applet的HTML文件在相同的目录下,则可以通过使用getCodeBase()方法来获得该声音文件的基地址。

如果Applet本身的URL地址为“则语句:Play(gatCodeBase(),“”);等同于语句:Play(“;在程序编写过程中,若使用第一种方法定义,则将程序由一个服务器转移到另一服务器上或从一个目录转移到另一个目录下时,必须改变源代码中的URL地址:若使用第二种方法定义,即使用getCodeBase()方法来定位资源文件,则将程序由一个服务器转移到另一个服务器或从一个目录转移到另一个目录下时,不必改变源代码中的URL地址,而只需将声音文件与播放他的Java文件放在同一目录下即可。

Play()方法只能进行简单的播放,只能一次敬爱那个声音文件播放完,没有停止和连续播放的功能,所以,一般编写播放声音的程序时不采用此方法。

(2)利用Java中的AudioClip类对象播放声音文件。

AudioClip类提供了两种获取声音数据的方法,定义如下:AudioClip getAudioClip(URL url);AudioClip getAudioClip(URL url,String soundFile);它们的参数含义与以上相同。

使用时可按如下步骤。

○1)声明一个AudioClip类的对象,如:AudioClip audio;○2)使用getAudioClip()方法为AudioClip类的对象获得句柄,如:aud=getAudioClip(getCodeBase(),“”);或一次完成,如:AudioClip aud=getAudioClip(getCodeBase(),“”);或:AudioClip aud=getAudioClip(“HTTP3.2.13.2.23.2.3ava程序设计[M].北京:机械工业出版社,2005,10:309-312.[2]朱喜福,赵敏,夏齐霄,等.java程序设计[M].北京:人民邮电出版社,2005,2:272-290.[3] Liang 着,马海军,景丽等译.java编程原理与实践[M].北京:清华大学出版社2005,8:367-643.[4]徐明浩着,武转海,译.java编程基础应用与实例[M].北京:人民邮电出版社,2005,10:342-347.[6]王祖析.基于java技术的网络教学互动系统的构建[J].学术探讨,2009:74-78.[7]汤庸主编,冯至圣,申建芳等.java 程序设计与实践[J].北京:冶金工业出社,2003,1:208-212.[8] 马义德 ,周炜超 ,文芳 ,李柏年,李庚 . 基于SPCE061A 的声控 mp3播放器设计[J]. 电子设计,2009:217-301.[9] 周华中,李继凯.基于J2ME 流媒体播放器的模型设计[J].科技创新导报,2009:15-18.[10]春水东流. [J]. 电脑迷,2009,(7).。

相关主题