AS编写简单的音乐播放器

时间:2024-03-27 18:35:05

这篇文章用来描述如何在Android studio中编写一个简单的音乐盒,其功能是播放特定的音乐并且有基本的暂停,播放,上一首,下一首等功能。

首先对音乐盒的界面进行编写

作为一个在手机上运行的程序,我将它设计为符合手机使用习惯的界面,如下图所示。
AS编写简单的音乐播放器

XML文件的编写我将之分为了三个部分,应用的名字图标显示在界面的上方,功能区在界面的下方,界面的中间是显示歌曲信息的地方。因此我写了三个XML文件,分别是编写顶部和下端以及一个集成的XML文件。
顶部文件的编写不赘述,在一个linerlayout中放入imageview和textview即可。
底部文件四个按钮,他们是平行的关系,在一个大的linerlayout中放入四个含有imagebutton的linerlayout即可,并插入对应的图片,图片的排列应符合日常的使用习惯。

之后是Java文件的编写

关于实现这些功能的Java文件,MainActivity应当有的功能是,定义那些功能的按钮,以及定义音乐的播放状态和为单击按钮的事件添加监听器,以监听从service传回来的广播,而具体的点击各种按钮的变化细节则放在另一个Java文件中完成。
另一个Java文件我命名为Musicservice,它具有的功能有:读取音乐文件,并创建一个广播,用于通知activity更改文本框以及给BroadcastReceiver发送广播。
AS编写简单的音乐播放器

最后Musicservice要实现的功能是将四个按钮的作用具体化,也即在各种情况下点击按钮会发生的变化

case 1:
// 原来处于没有播放状态
if (status == 0x11)
{
// 准备并播放音乐
prepareAndPlay(musics[current]);
status = 0x12;
}
// 原来处于播放状态
else if (status == 0x12)
{
// 暂停
mPlayer.pause();
// 改变为暂停状态
status = 0x13;
}
// 原来处于暂停状态
else if (status == 0x13)
{
// 播放
mPlayer.start();
// 改变状态
status = 0x12;
}
break;
// 停止声音
case 2:
// 如果原来正在播放或暂停
if (status == 0x12 || status == 0x13)
{
// 停止播放
mPlayer.stop();
status = 0x11;
}
case 3:
//上一曲
mPlayer.stop();
status = 0x11;
if (current >0)
current–;
else if(current == 0)
current = 2;
mPlayer.start();
status = 0x12;
case 4:
//下一曲
mPlayer.stop();
status = 0x11;
if (current < 2)
current++;
else if(current == 2)
current = 0;
mPlayer.start();
status = 0x12;

想要看完整的代码请移步
https://gitee.com/atbon/simple-music-box.git