基于android普通的音乐播放器的设计与实训软件技术大学论文Word文件下载.docx
- 文档编号:16937838
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:33
- 大小:549.65KB
基于android普通的音乐播放器的设计与实训软件技术大学论文Word文件下载.docx
《基于android普通的音乐播放器的设计与实训软件技术大学论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于android普通的音乐播放器的设计与实训软件技术大学论文Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
目录
摘要I
AbstractII
第一章绪论1
1.功能设计1
1.1.1主界面音乐播放管理1
1.1.2通知栏音乐播放管理1
1.1.3音乐列表管理1
1.1.4设置管理1
1.1.5双声道管理1
2.本论文的内容和结构说明1
第二章系统设计3
2.1系统面向对象设计3
2.2数据库设计3
2.3主界面设计4
第三章系统实现5
3.1数据库存储系统的实现5
3.2系统功能实现5
3.2.1音乐信息添加功能的实现5
3.2.2音乐列表更改功能的实现6
3.2.3服务器音乐下载功能的实现7
3.2.4设置功能的实现9
3.2.5“关于”实现12
3.2.6通知栏音乐播放控制功能的实现13
3.2.7双声道和波形功能的实现14
第四章软件系统测试17
4.1测试目的17
4.2测试对象及测试范围17
第五章总结与展望18
致谢19
参考文献20
附录项目类表21
第1章绪论
1.功能设计
1.1.1主界面音乐播放管理
通过该模块,用户可以实现对音乐播放的管理,主要功能包括:
a.播放/暂停:
用户可以通过此功能对音乐实施播放或暂停控制。
b.上一首:
用户可以通过此功能切换音乐至上一首。
c.下一首:
用户可以通过此功能切换音乐至下一首。
d.播放模式:
用户可以通过此功能调节播放模式,包括顺序播放、循环播放和随机播放。
e.进度条拖动:
用户可以通过此功能调节音乐的播放进度。
1.1.2通知栏音乐播放管理
d.关闭:
用户可以通过此功能直接关闭播放器。
e.跳转:
用户可以通过此功能从通知栏跳转至主界面。
1.1.3音乐列表管理
a.默认列表:
用户打开列表自动搜索内存里的音乐,并导入默认列表。
用户可通过此列表进行选择播放。
b.喜欢列表:
用户通过在默认列表中的选择,将喜欢的音乐导入喜欢列表。
c.下载列表:
用户可通过网络下载喜欢的音乐至此列表,并进行选择播放。
1.1.4设置管理
a.背景设置:
用户可通过此功能更换界面背景。
b.搞怪3D音效:
用户可通过此功能获取搞怪音效。
c.语言设置:
用户可通过此功能来进行中英文切换。
1.1.5双声道管理
a.用户如果没有插入耳机,则出现波形图。
b.用户如果插入耳机,则进行双声道管理。
2.本论文的内容和结构说明
软件设计采用IARC语言软件开发系统,通过系统通讯主程序、路由子程序、传感器信号采集处理子程序、显示报警子程序等模块化软件设计,设计出使用简便、运行效率高、稳定可靠的配套软件系统。
本文结构主要由绪论、音乐播放器的构成与组建、系统模块的介绍,流程图和关键代码实现。
第1章:
绪论,介绍音乐播放器的功能设计。
第2章:
系统设计,系统总体分析与设计,总体介绍项目的构成。
第3章:
系统实现的原理。
第4章:
系统测试。
第5章:
对项目的以后的展望和。
系统顶层用例图如图1:
图1系统用例图
第二章系统设计
2.1系统面向对象设计
根据系统的需求分析,各功能模块所涉及的类如下:
音乐列表类:
功能:
修改音乐类型信息,比如添加音乐数据、查询所有未被删除的音乐信息、添加删除喜欢音乐。
属性:
存储音乐类型信息,比如默认音乐类型有歌曲ID、名称、专辑名、歌手名、路径、播放时长、大小、重命名歌曲名等。
音乐列表类图如图2.1
图2.1音乐列表类图
2.2数据库设计
系统采用SQLite关系型数据库进行数据库设计,由系统对象关系分析可知,系统数据存储结构可由一张数据表构成,其具体结构如表1所示。
表1音乐类型信息表
表名
account_type_info
列名
数据类型
非空
描述
主键
外键
id
integer
Y
歌曲ID
title
text
歌曲的名称
album
歌曲的专辑名
artist
歌曲的歌手名
url
歌曲文件的路径
duration
歌曲的总播放时长
musicname
重命名歌曲名
size
歌曲文件的大小
status
1标识不喜欢,2标识喜欢
2.3主界面设计
由于采用移动手持终端作为应用程序载体,为提高人机交互效果,主界面宜采用扁平化设计。
可以更加简单直接的将信息和事物的工作方式展示出来,减少认知障碍的产生。
主界面设计如图3.4所示。
图2.3主界面设计
第三章系统实现
3.1数据库存储系统的实现
本存储系统利用Andorid的SQLite关系型数据库存储系统实现。
其数据表字段及数据表创建等核心代码如下所示:
数据表字段代码:
privateSQLiteDatabasemMusicListdb=null;
privatefinalStringLIST_DBNAME="
music_list"
;
privatefinalStringTBL_MUSIC="
tbl_music"
privatefinalStringTITLE="
tilte"
privatefinalStringALBUM="
album"
privatefinalStringARTIST="
artist"
privatefinalStringURL="
url"
privatefinalStringDURATION="
duration"
privatefinalStringSIZE="
size"
privatefinalStringMUSICNAME="
musicname"
privatefinalStringSTATUS="
status"
3.2系统功能实现
本音乐播放系统通过播放、音效、设置、关于、通知等其他系统共同实现。
主界面以下功能:
播放、列表、设置、关于。
1.播放:
音乐的播放控制;
2.列表:
音乐列表显示和更改;
3.设置:
更改背景、语言设置和3D音效;
4.双声道和波形;
5.关于;
6.通知栏音乐播放管理。
3.2.1音乐信息添加功能的实现
该功能主要是音乐信息的添加,点击主界面的列表按钮,打开音乐默认列表自动添音乐(如图3.1所示)。
弹出等待提示框(如图3.2所示),音乐添加完成后将自动关闭并刷新列表。
图3.1音乐信息添加
图3.2等待提示框
添加音乐数据访问层(MusicListDao类)核心代码:
publicvoidinitData(SdcardMusicsm){
ContentValuescv=newContentValues();
cv.put(TITLE,sm.getTilte());
cv.put(ALBUM,sm.getAlbum());
cv.put(ARTIST,sm.getArtist());
cv.put(URL,sm.getUrl());
cv.put(DURATION,sm.getDuration());
cv.put(SIZE,sm.getSize());
cv.put(MUSICNAME,sm.getMusicname());
cv.put(STATUS,"
1"
);
mMusicListdb.insert(TBL_MUSIC,"
novalue"
cv);
mMusicListdb.close();
添加音乐信息事件核心代码:
if(newMusicListDao(view.getContext()).findAllMusic().isEmpty()){
if(newMusicListDao(view.getContext()).findAllMusic().isEmpty()){
showLoadDialog(false);
newThread(){
publicvoidrun(){
Vector<
SdcardMusic>
als=newVector<
();
als=CommonUtils.getMusicFromSdCard(view.getContext());
for(inti=0;
i<
als.size();
i++){
if(als.elementAt(i).getDuration()>
30000){
newMusicListDao(view.getContext()).initData(als.elementAt(i));
}
}
hand.sendEmptyMessage(0);
};
}.start();
}
}else{
Toast.makeText(view.getContext(),R.string.application_no_music,Toast.LENGTH_SHORT).show();
}
}
3.2.2音乐列表更改功能的实现
该功能主要是负责音乐列表的查询和修改,点击默认列表界面的钻石图标,可将该音乐添加至我喜欢的音乐列表(如图3.3所示),选择右侧黄色标签可查看不同列表(如图3.4所示)。
图3.3添加至喜欢的音乐列表
图3.4查看不同的音乐列表
查询音乐信息数据访问层(MusicListDao类)核心代码
publicVector<
findAllMusic(){
Vector<
vsm=newVector<
Cursorc=mMusicListdb.rawQuery("
select*from"
+TBL_MUSIC+"
where"
+STATUS+"
<
>
?
"
newString[]{"
0"
});
c.moveToFirst();
while(!
c.isAfterLast()){
SdcardMusicsm=newSdcardMusic();
sm.setId(c.getInt(0));
sm.setTilte(c.getString
(1));
sm.setAlbum(c.getString
(2));
sm.setArtist(c.getString(3));
sm.setUrl(c.getString(4));
sm.setDuration(c.getInt(5));
sm.setSize(c.getInt(6));
sm.setMusicname(c.getString(6));
sm.setStatus(c.getInt(8));
vsm.addElement(sm);
c.moveToNext();
returnvsm;
3.2.3服务器音乐下载功能的实现
点击列表内的下载按钮可从服务器下载该音乐至本地(如图3.5所示)。
等待下载完成后即可播放(如图3.6所示)。
图3.5下载音乐至本地
图3.6下载完成
客户端连接接收代码
publicstaticStringIP="
192.168.191.2"
publicstaticintPORT=5000;
publicstaticStringmusic_title="
YourSmile.mp3"
publicbooleanconnect(){
newThread(){
publicvoidrun(){
try{
while(true){
Socketsocket=newSocket(IP,PORT);
Stringlocal_file=Environment.getExternalStorageDirectory().getAbsolutePath()+"
/AdownloadMusic/"
Filef=newFile(local_file);
if(!
f.exists()){
f.mkdirs();
local_file=f.getAbsolutePath()+"
/"
+music_title;
Filefile=newFile(local_file);
InputStreamins=socket.getInputStream();
FileOutputStreamfos=newFileOutputStream(file);
BufferedInputStreambis=newBufferedInputStream(ins);
BufferedOutputStreambos=newBufferedOutputStream(fos);
byte[]buffer=newbyte[102400];
intlen=bis.read(buffer);
while(len!
=-1){
bos.write(buffer,0,len);
len=bis.read(buffer);
fos.flush();
fos.close();
FileReaderfr=newFileReader(file);
Stringstr="
intval=ins.read(buffer);
val=fr.read();
while(val!
str+=(char)val;
val=fr.read();
CommonData.downloading=0;
CommonData.handler_deletemusic.sendEmptyMessage
(2);
}
}catch(Exceptione){
CommonData.downloading=0;
CommonData.handler_deletemusic.sendEmptyMessage(3);
}
};
}.start();
returnfalse;
服务端创建服务传输代码
publicstaticvoidmain(String[]args){
Filefile=newFile("
try{
ServerSocketsocketServerSocket=newServerSocket(5000,1,InetAddress.getByName("
172.17.0.82"
));
while(true){
Socketsocket=socketServerSocket.accept();
OutputStreamops=socket.getOutputStream();
BufferedOutputStreambos=newBufferedOutputStream(ops);
BufferedInputStreambis=newBufferedInputStream(newFileInputStream(file));
byte[]buffer=newbyte[102400];
intlen=bis.read(buffer);
while(len!
=-1){
bos.write(buffer,0,len);
len=bis.read(buffer);
bos.flush();
bos.close();
ops.flush();
ops.close();
System.out.println("
ok!
Thread.sleep(1000);
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
3.2.4设置功能的实现
点击主界面的设置按钮即可调出设置菜单(如图3.7);
点击背景设置按钮弹出背景选择界面长按即可设置成功(如图3.8);
图3.7设置菜单查看
图3.8背景设置成功
背景设置关键代码
publicclassImageAdapterextendsBaseAdapter{
privateintm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 android 普通 音乐 播放 设计 软件技术 大学 论文