hunterliy小作品之 HunterMusic音乐播放器(开发介绍)

时间:2021-10-03 10:12:44

前言

最近想做一个小的android项目来练手,有想过做天气app或者新闻客户端什么的,但是后来发现一个音乐播放器用到的知识点挺多的比如说handle、broadcast、service等等,所以就先拿音乐播放器开刀吧。

1.功能规划

音乐是我们平时必不可少的调味剂,而一个好的音乐播放器则更是能令人愉悦。市面上存在着大大小小上百种音乐播放器,而每个都有自己的优缺点,不同的人对于播放器的需求也会不一样。现在就先做一下产品规划,尽可能的列举出可能会用到的功能,然后再慢慢删减,尽量选出能满足大部分人需求而且做到尽量简约不臃肿。

1.1功能示例

1.展示出本地的音乐文件,并显示该文件的相关信息,例如歌曲名、演唱者、歌曲的封面图片;
2.音乐可以按照演唱者、专辑名称、男女歌手、歌曲类型等信息进行分类;
3.播放本地音乐,在播放的过程中,可以停止播放、回复播放、播放下一首、播放上一首、拖动音乐进度条到音乐任意时间点播放;
4.播放时,能显示当前播放音乐的进度,指示播放的时间;
5.播放时,能实时的显示当前歌词;
6.播放的顺序可以设置顺序播放、单曲循环播放、随机播放等等;
7.音乐播放器等界面退出以后,音乐仍然能在后台播放;再次打开播放器,能显示当前播放的实时信息,例如播放进度条;
8.可以连接到网络,播放网络上的音乐;
9.下载网络上的音乐;
10.让用户标注喜欢的音乐,允许用户给音乐写评论;
11.根据用户的播放历史,为他推荐可能会喜欢的音乐;
….

1.2功能筛选

上面的功能大概可以分为两部分,一部分为本地,另一部分为网络。而我想先实现简单的本地部分,等下一个版本在增加网络播放等。毕竟是一个小demo,所以就尽量做到避繁就简,但是主要核心功能还是要认真实现。

1.3功能流程介绍

1.用户通过引导页进入MusicListActivity;
2.用户在MusicListActivity通过点击歌曲开始播放音乐并进入MusicPlayActivity;
3.这个音乐信息被传递给MusicService,MusicService操作Mediaplayer开始进行播放并且初始化音乐播放列表;
4.播放的过程中,MusicService将当前播放的进度实时更新到MusicPlayActivity中;
5.当播放的音乐有变化(播放完成、切换歌曲、播放进度每秒的变化),MusicService都将通知给MusicListActivity和MusicPlayActivity,让其能够同步的改变界面显示;
6.播放过程中,MusicListActivity和MusicPlayActivity都能通过调用MusicService提供的接口控制音乐的暂停、继续、播放上一首、下一首;
8.当播放完毕所有歌曲时会根据播放列表进行判断是从头开始继续播放还是继续播放此歌曲;

本文到此就基本结束了,下一篇开始就开始正式码代码了,希望能按计划完成所有功能。