当前位置:文档之家› java音乐播放器

java音乐播放器

java音乐播放器
java音乐播放器

import java.awt.*;

import java.awt.event.*;

import javax.imageio.ImageIO;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.Clip;

import javax.sound.sampled.FloatControl;

import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.SourceDataLine;

import javax.sound.sampled.UnsupportedAudioFileException; import javax.swing.*;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

import java.applet.AudioClip;

import java.io.*;

import java.applet.Applet;

import https://www.doczj.com/doc/b18779081.html,.MalformedURLException;

import https://www.doczj.com/doc/b18779081.html,.URL;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Vector;

/**

* 实现随机播放的功能及细节改进,还有单曲循环功能

*

*/

public class Audio extends JFrame {

Vector vt;

File[] f = new File[100];

JList list;

JMenuBar menuBar;

JMenu menu1;// 文件

JMenuItem item11;// 打开菜单项

JMenuItem item12;// 退出菜单项

JMenu menu2;// 播放

JMenuItem item21;// 上一首

JMenuItem item22;// 下一首

JMenu subMenu2;// 播放模式

JMenuItem subMenu2Item21;// 顺序播放

JMenuItem subMenu2Item22;// 单曲循环

JMenuItem subMenu2Item23;// 随机播放

JMenuItem subMenu2Item24;// 全部循环

JButton b1;// 播放

JButton b2;// 暂停

JButton b3;// 停止

JTextArea textArea;// 歌词

JScrollPane p1;// 歌词面板

JPanel p2;// 进度条面板

JPanel p3;// 控制面板

JPanel p4;// 音量

JSlider jSliderPlayProgress;// 播放进度条

JSlider jSliderVolume;// 音量条

JPanel pane;// 添加背景的面板

FileDialog fileDialog;

FileInput fileInput = null;

Applet audio;

AudioClip audioClip;

URL musicURL = null;

String str1;//用播放按钮、上一首、下一首播放时,得到JList的选定项

public static void main(String[] args) {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());// 将外观改为windows风格

} catch (Exception exception) {

exception.printStackTrace();

}

new Audio().init();

}

private void init() {

pane = new JPanel();

setLayout(new FlowLayout());

setBounds(120, 80, 290, 400);

addMenuBar();

setResizable(false);

vt = new Vector();

fileInput = new FileInput(this);

list = new JList();

list.setFixedCellWidth(280);

list.setFixedCellHeight(28);

list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 设置List只能单选

add(new JScrollPane(list), BorderLayout.CENTER);

jSliderPlayProgress = new JSlider(); // 播放进度条

jSliderPlayProgress.setValue(0);

jSliderPlayProgress.setEnabled(false);

p2 = new JPanel();

p2.add(jSliderPlayProgress);

add(p2);

addButton();// 添加按钮

JLabel label1 = new JLabel("音量");

jSliderVolume = new JSlider(); // 播放进度条

jSliderVolume.setValue(0);

jSliderVolume.addChangeListener(new ChangeListener() {

public void stateChanged(ChangeEvent e) {

int volum = ((JSlider)e.getSource()).getValue();

//FloatControl volume = new FloatControl(FloatControl.Type.MASTER_GAIN, 0.00, 100.00, 20.00, 2, 50.00, "db");

}

});

p4 = new JPanel();

p4.add(label1);

p4.add(jSliderVolume);

add(p4);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setVisible(true);

}

VolumeControl getVolumeControl() {

return new VolumeControl(this);

}

private void addMenuBar() {

menuBar = new JMenuBar();

menu1 = new JMenu("文件");

item11 = new JMenuItem("打开");

fileDialog = new FileDialog(this, "打开文件");

item11.addActionListener(new item11Listener());

item12 = new JMenuItem("退出");

item12.addActionListener(new item12Listener());

menu1.add(item11);

menu1.add(item12);

menu2 = new JMenu("播放");

item21 = new JMenuItem("上一首");

item21.addActionListener(new item21Listener());

item22 = new JMenuItem("下一首");

item22.addActionListener(new item22Listener());

menu2.add(item21);

menu2.add(item22);

menu2.addSeparator();// 加入分割符

subMenu2 = new JMenu("播放模式");

subMenu2Item21 = new JMenuItem("顺序播放");

subMenu2Item21.addActionListener(new subMenu2Item21Listener()); subMenu2Item22 = new JMenuItem("单曲循环");

subMenu2Item22.addActionListener(new subMenu2Item22Listener()); subMenu2Item23 = new JMenuItem("随机播放");

subMenu2Item23.addActionListener(new subMenu2Item23Listener()); subMenu2Item24 = new JMenuItem("全部循环");

subMenu2Item24.addActionListener(new subMenu2Item24Listener()); subMenu2.add(subMenu2Item21);

subMenu2.add(subMenu2Item22);

subMenu2.add(subMenu2Item23);

subMenu2.add(subMenu2Item24);

menu2.add(subMenu2);

JMenu menu3 = new JMenu("歌词");

JMenuItem itemGeCiXianShi = new JMenuItem("显示"); itemGeCiXianShi.addActionListener(new itemGeCiXianShiAction()); JMenuItem itemGeCiYinCang = new JMenuItem("隐藏"); itemGeCiYinCang.addActionListener(new itemGeCiYinCangAction()); menu3.add(itemGeCiXianShi);

menu3.add(itemGeCiYinCang);

menuBar.add(menu1);

menuBar.add(menu2);

menuBar.add(menu3);

setJMenuBar(menuBar);

}

/**

* 歌词-显示事件监听

*/

class itemGeCiXianShiAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

/*

* 用播放按钮、上一首、下一首播放时且歌词线程是活着的时候,将其显示

*/

if(BF.ChuFaPanDuan == 1) {

if(BF.ths == null)

;

else

if(BF.ths.isAlive())

BF.geci.setVisible(true);

}

/*

* 用顺序播放时且歌词线程是活着的时候,将其显示

*/

if(shShun.ChuFaPanDuan == 2) {

if(shShun.ths == null)

;

else

if(shShun.ths.isAlive())

shShun.geci.setVisible(true);

}

/*

* 用单曲循环时且歌词线程是活着的时候,将其显示

*/

if(shDan.ChuFaPanDuan == 3) {

if(shDan.ths == null)

;

else

if(shDan.ths.isAlive())

shDan.geci.setVisible(true);

}

/*

* 用随机播放时且歌词线程是活着的时候,将其显示

*/

if(shSui.ChuFaPanDuan == 4) {

if(shSui.ths == null)

;

else

if(shSui.ths.isAlive())

shSui.geci.setVisible(true);

}

/*

* 用全部循环时且歌词线程是活着的时候,将其显示

*/

if(shXun.ChuFaPanDuan == 2) {

if(shXun.ths == null)

;

else

if(shXun.ths.isAlive())

shXun.geci.setVisible(true);

}

}

}

/**

*

* 歌词-隐藏事件监听

*

*/

class itemGeCiYinCangAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

if(BF.ChuFaPanDuan == 1) {

if(BF.ths == null)

;

else

if(BF.ths.isAlive())

BF.geci.setVisible(false);

}

if(shShun.ChuFaPanDuan == 2) {

if(shShun.ths == null)

;

else

if(shShun.ths.isAlive())

shShun.geci.setVisible(false);

}

if(shDan.ChuFaPanDuan == 3) {

if(shDan.ths == null)

;

else

if(shDan.ths.isAlive())

shDan.geci.setVisible(false);

}

if(shSui.ChuFaPanDuan == 4) {

if(shSui.ths == null)

;

else

if(shSui.ths.isAlive())

shSui.geci.setVisible(false);

}

if(shXun.ChuFaPanDuan == 2) {

if(shXun.ths == null)

;

else

if(shXun.ths.isAlive())

shXun.geci.setVisible(false);

}

}

}

BoFang BF = setAdForBoFang();;

Thread bf;

boolean ff = false;

class item11Listener implements ActionListener { public void actionPerformed(ActionEvent e) { fileInput.open();

String[] list1 = fileInput.getFileNames();

if (list1 != null) {

for (int i = 0; i < list1.length; i++)

vt.add(list1[i]);

list.setListData(vt);

//刚载入时的初始化播放

list.setSelectedIndex(0);

BF.setURL(vt.get(0));

BF.ChuFaPanDuan = 1;

bf = new Thread(BF);

BF.setThread(bf);

bf.start();

}

}

}

BoFang setAdForBoFang() {

return new BoFang(this);

}

/**

*

* 退出item事件监听

*

*/

class item12Listener implements ActionListener {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

}

public void killThread() {

if(bf.isAlive()) {

bf.stop();

}

if( shShun.th2 == null)

;

else

if(shShun.th2.isAlive())//判断上一个顺序线程是否活着,若活着,则杀死shShun.th2.stop();

if(shDan.th2 == null)

;

else

if(shDan.th2.isAlive())//判断上一个单曲线程是否活着,若活着,则杀死shDan.th2.stop();

if(shSui.th2 == null)

;

else

if(shSui.th2.isAlive()) //判断上一个随机线程是否活着,若活着,则杀死shSui.th2.stop();

if(shXun.th2 == null)

;

else

if(shXun.th2.isAlive()) //判断上一个随机线程是否活着,若活着,则杀死shXun.th2.stop();

}

int index = 0;//当前索引

/**

*

* 上一首item事件监听

*

*/

class item21Listener implements ActionListener {

public void actionPerformed(ActionEvent e) {

String str3;

ff = true;

index = list.getSelectedIndex() - 1;// 获取上一首歌曲的路径

if (index != 0 && index > 0) {

list.setSelectedIndex(index);// 设置选中播放的音乐

str3 = vt.get(index);

BF.setURL(str3);

BF.ChuFaPanDuan = 1;

killThread();

bf = new Thread(BF);

BF.setThread(bf);

bf.start();

} else {

str3 = vt.get(0);

list.setSelectedIndex(0);

BF.setURL(str3);

BF.ChuFaPanDuan = 1;

killThread();

bf = new Thread(BF);

BF.setThread(bf);

bf.start();

}

}

}

/**

*

* 下一首item事件监听

*

*/

class item22Listener implements ActionListener {

public void actionPerformed(ActionEvent e) {

String str4;

ff = true;

index = list.getSelectedIndex() + 1;// 获取下一首歌的路径

if (index != 0 && index < list.getLastVisibleIndex()) {

list.setSelectedIndex(index);// 设置选中播放的音乐

str4 = vt.get(index);

BF.setURL(str4);

BF.ChuFaPanDuan = 1;

killThread();

bf = new Thread(BF);

BF.setThread(bf);

bf.start();

} else {

str4 = vt.get(list.getLastVisibleIndex());

list.setSelectedIndex(list.getLastVisibleIndex());

BF.setURL(str4);

BF.ChuFaPanDuan = 1;

killThread();

bf = new Thread(BF);

BF.setThread(bf);

bf.start();

}

}

}

/**

* 顺序播放item事件监听

*/

BoFang shShun = setAdForBoFang();

class subMenu2Item21Listener implements ActionListener { public void actionPerformed(ActionEvent e) {

killThread();

/*

* 开启当前顺序线程

*/

Thread th3 = new Thread(shShun);

shShun.ChuFaPanDuan = 2;

shShun.count4Shun = 0;

shShun.index = 0;

shShun.setThread(th3);

th3.start();

}

}

/**

* 单曲循环item事件监听

*/

BoFang shDan = setAdForBoFang();

class subMenu2Item22Listener implements ActionListener { public void actionPerformed(ActionEvent e) {

killThread();

/*

* 开启当前单曲线程

*/

Thread th4 = new Thread(shDan);

shDan.ChuFaPanDuan = 3;

shDan.index = 0;

shDan.setThread(th4);

th4.start();

}

}

/**

* 随机播放item事件监听类

*/

BoFang shSui = setAdForBoFang();

class subMenu2Item23Listener implements ActionListener { public void actionPerformed(ActionEvent e) {

killThread();

/*

* 开启当前随机线程

*/

Thread th5 = new Thread(shSui);

shSui.ChuFaPanDuan = 4;

shSui.index = 0;

shSui.setThread(th5);

th5.start();

}

}

/**

* 全部循环item事件监听类

*/

BoFang shXun = setAdForBoFang();

class subMenu2Item24Listener implements ActionListener { public void actionPerformed(ActionEvent e) {

killThread();

Thread th6 = new Thread(shXun);

shXun.ChuFaPanDuan = 5;

shXun.index = 0;

shXun.setThread(th6);

th6.start();

}

}

private void addButton() {

p2 = new JPanel();

b1 = new JButton("播放");

b1.addActionListener(new b1Listener());

p2.add(b1);

b2 = new JButton("暂停");

b2.addActionListener(new b2Listener());

p2.add(b2);

add(p2);

}

/**

* 播放按钮的监听类

*

*/

class b1Listener implements ActionListener {

public void actionPerformed(ActionEvent arg0) {

ff = true;

str1 = (String) list.getSelectedValue();//得到选中的音乐

BF.setURL(str1);//设置播放路径

BF.ChuFaPanDuan = 1;//当ChuFaPanDuan = 1代表用播放按钮、上一首(item)、下一首(item)播放

killThread();

//开启当前播放线程

bf = new Thread(BF);

BF.setThread(bf);

bf.start();

}

}

/**

*

* 停止按钮事件监听

*

*/

class b2Listener implements ActionListener {

public void actionPerformed(ActionEvent e) {

/*

* 把用播放按钮播放的音乐停止,并把进度条线程关闭,进度条置零

*/

if(BF.ChuFaPanDuan == 1) {

BF.audioClip.stop();

jSliderPlayProgress.setValue(0);

BF.th.stop();

}

/*

* 把用顺序播放Item播放的音乐停止,并把进度条线程关闭,进度条置零,

*/

if(shShun.ChuFaPanDuan == 2) {

shShun.audioClip.stop();

jSliderPlayProgress.setValue(0);

shShun.th.stop();

}

/*

* 把用单曲循环Item播放的音乐停止,并把进度条线程关闭,进度条置零,

*/

if(shDan.ChuFaPanDuan == 3) {

shDan.audioClip.stop();

jSliderPlayProgress.setValue(0);

shDan.th.stop();

}

/*

* 把用随机播放Item播放的音乐停止,并把进度条线程关闭,进度条置零,

*/

if(shSui.ChuFaPanDuan == 4) {

shSui.audioClip.stop();

jSliderPlayProgress.setValue(0);

shSui.th.stop();

}

/*

* 把用全部Item播放的音乐停止,并把进度条线程关闭,进度条置零,

*/

if(shXun.ChuFaPanDuan == 5) {

shXun.audioClip.stop();

jSliderPlayProgress.setValue(0);

shXun.th.stop();

}

}

}

}

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.doczj.com/doc/b18779081.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

音乐播放器程序源代码及注释

音乐播放器程序源代码及注释: #include #define uchar unsigned char #define uint unsigned int sbit duan=P2^6; sbit key1=P3^2;//按key1可切换花样 sbit key2=P3^3;//按key2可切换歌曲 sbit fm=P2^4;//蜂鸣器连续的IO口 sbit P30=P3^0;//矩阵键盘的一列 uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花样1 uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7, 0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花样2 uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0, 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; char code huayang4[]={ 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0}; uchar count1;//花样标志 uchar count2;//歌曲标志 uchar timeh,timel,i; //编程规则:字节高位是简谱,低位是持续时间, //代表多少个十六分音符 //1-7代表中央C调,8-E代表高八度,0代表停顿

Java音乐播放器源代码即结果显示

简单的音乐播放器一、程序代码: import java.io.File; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.FileDialog; import java.awt.Frame; import java.awt.GridLayout; import https://www.doczj.com/doc/b18779081.html,bel; import java.awt.List; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; public class Example extends Frame { private static final long serialVersionUID = 1L; boolean isStop = true;// 控制播放线程 boolean hasStop = true;// 播放线程状态

智能时程音乐播放器功能说明

智能时程音乐播放器功能说明 ※系统概述: M P3智能音乐播放系统:采用世界最先进的微电脑控制、M P3、F L A S H录音技术。将广播自动播放、音源选播、录音下载/音频和麦克风录音存储等先进功能综合为一体。高标准的产品定位,多功能的超前设计,成为广播设备的典范之精品,达到国内领先水平。广泛适用于校园自动广播音乐打铃、外语广播教学听力考试系统。 ※综合功能: M P3自动广播、智能分区广播、日常教学广播、消防紧急广播、背景音乐播放、外语教学及听力考试广播功能。 ※系统特点: 1、M P3存储: 本系统采用F L A S H为存储方式,音质清晰、优美、内存容量有2G,可满足各种用户广播需求。 2、编程播放: 具有自动广播功能、每天可达99次设定编程播放,对播放内容和播出时间、次数及循环设定多遍播放并任意编程控制,实现无人直守。每一次编程时间设定可达几十首歌曲进行播放输入。对某些需要准点播放的内容拥有优先权。 3、功放管理: 在每次执行定时播放程序时会自动提前5秒钟将功放电源打开,避免功放机开机因启动及预热延时而影响正常播放。(智能化的设计起到了节能和科学化管理功放开关) 4、中文菜单显示: M P3自动广播系统采用中文式菜单液晶显示,引导式菜单进入,让操作者对各项功能信息一目了然,上下翻页及功能设定简洁方便,简单明朗易学易用。 5、程序设定: 用户可根据不同的作息时间、内容进行编程设定,达到任意选择和调整作息时间,满足各广播单位对广播作息的选择需求。 6、M P3下载存录音源: 用户可直接从计算机上下载或自行录制需要的乐曲到系统内,再进行编程播放。 7、音频及麦克存录音源: 本系统可直接从各种媒体(V C D、C D、卡座等)线路和麦克风两种方式录音输入存储音源音乐曲目。 8、时钟显示: 本系统具有日常时钟功能:本机采用专用实时时钟模块,走时准确,停电正常计时,标准时间及工作程序不会丢失、错乱。对年、月、日及时间显示,起到了对操作使用者及时了解当前时间和下一曲将播放的时间显示功能。 9、M P3音质清晰:

音乐播放器的设计与实现

德州学院信息管理学院 课程设计报告实习名称课程设计2 设计题目Android音乐播放器的设计与实现实习时间 专业班级12级计算机科学与技术 指导老师刘想 教学单位(盖章) 小组成员分工情况: 学号姓名分工 3018 周生明音乐播放的设计与实现1052曹法瑞 1040 张正奎 1055 李元华 2049 王山 二〇一五年六月三十日

目录 摘要 ................................................................................................................ 错误!未定义书签。 1 引言 ............................................................................................................ 错误!未定义书签。 2 可行性分析................................................................................................. 错误!未定义书签。 2.1 技术可行性...................................................................................... 错误!未定义书签。 2.2 经济可行性...................................................................................... 错误!未定义书签。 2.3 管理可行性...................................................................................... 错误!未定义书签。 2.4 可行性分析结论.............................................................................. 错误!未定义书签。 3 系统需求分析............................................................................................. 错误!未定义书签。 3.1 功能分析.......................................................................................... 错误!未定义书签。 3.2 数据流程分析.................................................................................. 错误!未定义书签。 4 系统功能设计............................................................................................. 错误!未定义书签。 4.1 播放器功能结构.............................................................................. 错误!未定义书签。 4.1.1 播放器主界面功能模块....................................................... 错误!未定义书签。 4.1.2 播放器菜单功能模块........................................................... 错误!未定义书签。 4.2 播放器功能流程.............................................................................. 错误!未定义书签。 5 系统实现..................................................................................................... 错误!未定义书签。 5.1 播放器主界面功能列表.................................................................. 错误!未定义书签。 5.2 播放器基本功能的实现.................................................................. 错误!未定义书签。 5.3 播放列表的实现.............................................................................. 错误!未定义书签。 6 软件测试与验证......................................................................................... 错误!未定义书签。 6.1 软件测试的目的.............................................................................. 错误!未定义书签。 6.2 软件测试的方法.............................................................................. 错误!未定义书签。 6.3 软件测试环境.................................................................................. 错误!未定义书签。 6.3.1 android模拟器 ...................................................................... 错误!未定义书签。 6.3.2 真机测试............................................................................... 错误!未定义书签。 6.4 软件测试流程与结果评估.............................................................. 错误!未定义书签。 6.4.1 测试流程............................................................................... 错误!未定义书签。 6.4.2 结果评估............................................................................... 错误!未定义书签。

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

基于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("文件");

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

设计文档 (AW音乐播放器)

2015年华北五省(市、自治区)及港澳台大学生计算机应用大赛移动终端应用创意与程序设计 (应用类样例) 【项目名称】AW音乐所在学校:天津商业大学宝德学院所在赛区:天津赛区 团队名称:三个臭皮匠 团队成员:安兴悦王璐瑶王鹤 提交日期:2015.10.12

目录 一、作品概述 (1) 二、作品可行性分析和目标群体错误!未定义书签。 (1)可行性分析 ...... 错误!未定义书签。(2)目标群体 .......... 错误!未定义书签。 三、作品功能与原型设计 (2) (1)功能概述: (2) (2)原型设计 (3) 四、作品实现、难点及特色分析 (5) (1)作品实现及难点 (5) (2)特色分析 (5) 五、团队介绍和人员分工 (5) 六、其他 (6) 七、致谢 (6)

一、作品概述 在这个互联网普及的时代,人们对于手机功能的应用除了打电话、发短信之外,更多的是以娱乐形式来放松自我。这便成为了我们决定设计这款手机音乐软件的主要原因。 我们开发的这款手机音乐软件以“私人订制”与“休闲娱乐”为主题设计,无论你是清纯学院风还是韩系欧美范,我们都会为您呈现一份独家定制只属于你的音乐体验,让用户在专属的界面中感受到我们这款音乐软件带来的恬静、放松。 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类,现在市场上主要有三个手机操作系统——Windows Mobile,Symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上又有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的音乐播放器.现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,可以播放本地的MP3音乐,也可以播放在线的MP3音乐。本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使本人更加熟练Android的技术和它在市场上的特点。 Android是一个开源系统技术,它底层是基于Linux操作系统,本音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面截图以及主要功能运行流程图,还对开发过程中遇到的问题和解决方法进行了详细的讨论。该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示、在线播放、音乐下载等功能于一体,性能良好,在Android系统中能独立运行。MP3的全名是MPEG Audio Layer-,是一种声音文件的压缩格式,由于本播放器只限于应用层的探讨,所以对具体的压缩算法不作深究。 二、作品可行性分析和目标群体 (1)可行性分析

音乐播放器代码大全

音乐播放器代码大全 autostart="true"中true或1表示自动播放,false或0表示手动播放 loop="true" 中的true或1表示重复播放,false或0表示只播放一次width= height= 中的数字分别表示播放器的宽度和高度=0表示隐藏播放器 EnableContextMenu="0" 禁右键 ShowStatusBar="1" (带显示文件播放信息) 1隐藏播放器(不循环) 代码: 2.隐藏播放器(循环播放) 代码: 3.黑色皮肤播放器 代码: 4.淡蓝色播放器 代码:

5.迷幻播放器 代码:

6.带菜单的播放器 代码: 7.深黄色带菜单播放器 代码: 8.灰色播放器 代码:

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java 音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX 年X 月X 日

、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java 中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3 歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer() :实现窗口的成员方法 publi c void run() :实现改变歌曲的播放状态的成员方法 :实现对声音的加载 public AudioClip loadSound(String ) :实现对按钮的监听 public void mouseClicked(MouseEvent e) public void itemStateChanged(ItemEvent arg0) :返回一个AudioClip 对象

3、程序流程图 * 出现界面 * 选择播放歌 曲 4、程序清单 import java.awt.*; import javax.swi ng.*; import java.applet.*; import java.awt.eve nt.* import java .n et.*; public class MyMusicPIayer exte nds Thread impleme nts MouseListe ner,ltemListe ner{ JFrame Mai nF rame =new JFrame( "MyMusicPlayer" ); // 定义主窗体 JLabel songname =new JLabel(); //用标签显示状态 JButton last =new JButto n(); JButt on play =new JButt on();

数字系统设计音乐播放器

一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、 讨论、心得 一、实验目的和要求: 实验目的: (1)掌握音符产生的方法,了解DDS 技术的应用。 (2)了解AC97音频接口电路的应用。 (3)掌握系统“自顶而下”的设计方法。 实验任务: 设计一个音乐播放器。 (1)可以播放四首乐曲,设置play 、next 、reset 三个按键。按play 键播放当前乐曲,按next 键播放下一首乐曲。 (2)LED0指示播放情况(播放时点亮)、LED2和LED3指示当前乐曲序号。 二、实验内容和原理 (1)音乐播放器的设计原理 根据实验任务可将系统分为主控制器(mcu )、乐曲读取(song_reader )、音符

播放(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块,系统的总体框图如下: 各个模块的功能如下: 模块接收按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song),若一曲播放结束则进入播放结束END状态。 模块根据mcu模块的要求,逐个取出音符{note,duration}送给note_player模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。 模块接收到需播放的音符,在音符的持续时间内,以48kHz速率送出该音符的正弦波样品给AC97音频接口模块。当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。 、ac97_if模块负责与AC97音频系统接口工作,本实验已提供了这两个模块的代码。 另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。 1、主控制模块mcu的设计 mcu模块是主控制模块,有响应按键信息、控制系统播放两大任务,工作流程如下面的流程图所示。要求系统复位后经RESET状态初始化后进入WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXT或PLAY),若一曲播放结束则进入结束播放END状态。 mcu的控制器算法流程图如下图: 以下为mcu的端口含义

基于java的音乐播放器课程设计报告

Java课程设计报告题目:java音乐播放器 姓名 学号 院系 班级 专业 任课教师

1.设计内容及要求 能够实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加 多首歌曲目录 一个简单的基于java语言的音乐播放器,菜单栏:文件,播放控制和播放列表,文件菜单包含打开、循环和退出三个菜单项;播放控 制菜单包含播放、暂停和停止三个菜单项,播放列表菜单则是当向里面 添加歌曲之后才能够查看到里面所包含的歌曲目录。当播放歌曲时,可 以调节音量大小或者设置是否静音;可以查看当前播放音乐的相关属 性,如:歌曲名,歌手,发布时间,所属专辑等等。 2.需求分析 1、时间跟踪条:根据歌曲播放的进度,控制条自动进行追踪,用户可以 随时了解歌曲的播放进度 2、音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设 置 3、属性查询键:通过该控键,用户可以查看当前播放音乐的相属性,获 取关于该歌曲的用户所需的相关信息。 4、菜单栏: ①文件: 打开:用户通过该菜单项打开本地音乐文件,听任何用户想 听的歌曲 循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲 退出:退出音乐播放器,及退出该程序

②播放控制: 播放:选择歌曲之后,通过点击播放菜单项启动播放器播放音乐 暂停:暂停当前正在播放的音乐 停止:停止当前正在播放的音乐 ③播放列表:当用户通过文件打开本地音乐文件后,及相当于在 播放列表里面添加了歌曲,及形成相应的歌曲播放目录 3.总体设计 结合需求分析来看,整个设计包含了简单的菜单栏,根据用户需求设置了三个简单的实现基本操作的菜单,分别是:文件,播放控制, 播放列表;根据具体的操作每个菜单还包含了相应的菜单项,文件:打 开,循环,退出;播放控制:播放,暂停,停止;播放列表则没有菜单 项,该菜单就是用来显示或者查看相应的歌曲目录的。 该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设 置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个 音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音 乐播放窗口里面用户可以进行相关的音乐播放的控制操作。 当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的 播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播 放列表:查看当前播放音乐的相关属性。

音乐播放器的设计与实现

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。3技术使音乐数据压缩比率大,回放质量高。如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用技术设计一款新型的3播放器。 9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。 3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。本设计是在9平台上设计、实现一个3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。主要实现歌曲的播放。 2.2 设计指标 1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。 2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。

音乐播放器设计文档

题目:心灵音乐播放器学号: 姓名: 学院:信息工程学院 专业班级: 指导教师: 设计时间:2012年4月至2012年5月

目录 第一章引言 (3) 1.1 项目背景 (3) 2.2 编写目的 (3) 第二章系统开发 (4) 2.1 功能需求(用例图分析) (4) 2.1.1 播放器的基本控制需求 (4) 2.1.2 播放清单列表管理需求 (5) 2.1.3 播放友好性需求 (6) 2.1.4 播放扩展卡需求 (6) 2.1.5 功能需求(时序图)分析................................................... 错误!未定义书签。 2.2 系统结构图和流程图 (6) 2.2.1 音乐播放器的系统流程图 (6) 2.2.2 系统功能表(表2.1)和系统功能结构图(图2.5.2) (7) 2.3 详细设计 (8) 2.3.1 文档结构 (8) 2.3.2 类结构 (9) 2.4 初步设计界面图 (10) 2.4.1 在线列表 (11) 2.4.2 下载器界面 (11) 2.4.3 播放器界面 (12) 2.4.4 音乐设置界面 (13) 2.4.5 默认本地音乐文件夹界面 (14) 2.4.6 单击某条记录弹出对话框 (15)

摘要 Android是一个开源系统技术,它底层是基于Linux操作系统,本音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面截图以及主要功能运行流程图,还对开发过程中遇到的问题和解决方法进行了详细的讨论。该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示、在线播放、音乐下载等功能于一体,性能良好,在Android系统中能独立运行。MP3的全名是MPEG Audio Layer-3,是一种声音文件的压缩格式,由于本播放器只限于应用层的探讨,所以对具体的压缩算法不作深究 关键词:Android;开源系统;Linux;音乐播放器 第一章引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类,现在市场上主要有三个手机操作系统——Windows Mobile,Symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上又有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的音乐播放器。 2.2 编写目的 现金社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,可以播放本地的MP3音乐,也可以播放在线的MP3音乐。本设计所实现的主要功能是播放MP3音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使本人更加熟练Android的技术和它在市场上的特点。

相关主题
文本预览
相关文档 最新文档