搜档网
当前位置:搜档网 › java实验报告音频播放器

java实验报告音频播放器

java实验报告音频播放器
java实验报告音频播放器

Java考核

课程名称Java技术及其应用

题目名称图形界面音频播放器

学生学院计算机学院

专业班级计算机科学与技术2班学号 3211005765 学生姓名李振

指导教师李卫华

2013 年11 月27 日

1.题目:

编写一个图形界面多媒体应用程序,实现播放音频文件的功能。

2.运行环境:

Eclipse

3.实现功能:

可在列表中选择自己想听的歌曲,双击歌曲名即开始播放,中途可按stopPlay 键停止播放,按playOnce键重新播放,按playLoop键循环播放当前歌曲。能在Applet 窗口底部的状态位置显示Applet当前状态。

4.源代码:

package hjh;

import java.applet.Applet;

import java.applet.AudioClip;

import java.awt.Button;

import java.awt.Color;

import java.awt.Event;

import java.awt.Graphics;

import java.awt.GridLayout;

import java.awt.Image;

import https://www.sodocs.net/doc/0f4950145.html,bel;

import java.awt.List;

import java.awt.Panel;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class MySound extends Applet implements ActionListener

{

/**

*

*/

private static final long serialVersionUID = 1L;

AudioClip current = null;

Image image1, image2;

Button playOnce, stopPlay, playLoop;

Panel panel, panel2;

Label label;

List list1, list2;

String str;

public void init()

{

setBackground(Color.PINK);

setSize(400, 400);

setLayout(null);

panel = new Panel();

panel2 = new Panel();

panel.setLayout(new GridLayout(1, 4));

panel.setSize(400, 30);

panel.setBackground(Color.RED);

panel2.setLayout(new GridLayout(1, 2));

panel2.setBounds(0, 270, 400, 140);

add(panel);

add(panel2);

list1 = new List();

list2 = new List();

list1.addActionListener(this);

list2.addActionListener(this);

list1.setBackground(Color.PINK);

list2.setBackground(Color.PINK);

list1.add(" 林俊杰- 裂缝中的阳光");

list1.add(" 林俊杰- 修炼爱情");

list1.add(" 林俊杰- 因你而在");

list1.add(" 林俊杰- 零度的亲吻");

list2.add(" 孙燕姿- 天黑黑");

list2.add(" 孙燕姿- 开始懂了");

list2.add(" 孙燕姿- 心愿");

list2.add(" 孙燕姿- 遇见");

panel2.add(list1);

panel2.add(list2);

label = new Label("PlayMethod:");

panel.add(label);

playOnce = new Button("playOnce");

stopPlay = new Button("stopPlay");

playLoop = new Button("playLoop");

panel.add(playOnce);

panel.add(stopPlay);

panel.add(playLoop);

image1 = getImage(getCodeBase(),"林俊杰.jpg");

image2 = getImage(getCodeBase(),"孙燕姿.jpg");

repaint();

}

@Override

public void paint(Graphics g)

{

// TODO Auto-generated method stub

g.drawImage(image1, 30,50,150,170,this);

g.drawImage(image2, 220,50,150,170,this);

g.drawString("林俊杰- 单曲", 65 , 250);

g.drawString("孙燕姿- 单曲", 265, 250);

}

@Override

public boolean action(Event evt, Object what)

{

// TODO Auto-generated method stub

if(evt.target == playOnce)

{

if(current != null)

{

current.play();

showStatus("Playing Sound " + str + ".");

}

else

showStatus("Playing Sound " + current + " not loaded yet.");

return true;

}

else if(evt.target == stopPlay)

{

if(current != null)

{

current.stop();

showStatus("Stop playing Sound " + str + ".");

}

else

showStatus("Playing Sound " + current + " not palyed now.");

return true;

}

else if(evt.target == playLoop)

{

if(current != null)

{

current.loop();

showStatus("Loop playing Sound " + str + ".");

}

else

showStatus("Playing Sound " + current + " not palyed now.");

return true;

}

return false;

}

@Override

public void actionPerformed(ActionEvent e)

{

// TODO Auto-generated method stub

if(current != null)

{

current.stop();

showStatus("Stop playing Sound " + str + ".");

current = null;

}

str = e.getActionCommand();

current = getAudioClip(getCodeBase(), str + ".wav");

current.play();

showStatus("Playing Sound " + str + ".");

}

}

5.Applet截图:

6.实验感想:

通过这次实验,我学会了创建Applet,如何往Applet中添加各种组件或音频、照片,对布局管理器和Applet中一些方法的使用有了一定的认识,加深了对awt的各种组件的使用方法和事件处理的了解,并且初步接触到观察者模型,对其有了基本的了解。

相关主题