1600802053
1.音乐播放器界面截图:
(1)主界面: (2)点击左图中左上角的绿色小图标显示歌的相关信息界面:
(3)自己手机上apk成功安装截图:(运行apk过程截图即主界面截图)
注:
apk运行一切正常,功能都可以实现,只是有以下两个缺点:
1.运行apk时,打开速度有点慢,会白屏半分钟左右,但最终会成功打开;
2.打开apk后,偶尔会有闪退现象,重新打开就好了。
2.功能介绍:
(1)三个按钮:
点击左按钮:播放上一首;
点击中间按钮:暂停或播放;
点击右按钮:播放下一首;
(2)歌单
歌单显示在主界面,通过滚动条可以上下翻动查看歌单;
点击歌单中的某一首歌,即可播放对应歌曲;
(3)播放方式
点击右上角的循环方式,可以切换循环方式,有歌单循环、单曲循环、随机播放和顺序播放四种播放方式;
(4)播放过程
播放某一歌曲时,会显示正在播放歌曲的名字和对应歌手;
播放时滚动条会随之移动;
播放时会显示总时间和播放时间;
(5)歌曲信息
点击主界面左上角的绿色小图标,会跳转到另一个界面,即显示歌曲信息的界面;
(6)后台播放
所有歌曲,在退出apk后,可以在后台进行播放。
3.关键代码:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.activity_main); Log.e(TAG, "onCreate."); connectToMusicService(); initUIComponent(); //初始化UI initUIComponentListener(); //设置监听器 scanMp3Files(); //扫描歌曲 registerLocalReceiver(); //注册广播 adapterTextview = new AdapterTextview(this, files); listView.setAdapter(adapterTextview); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { currentIndex = position; musicBinder.startPlay(currentIndex, 0); //开始播放选中歌曲 if (musicBinder.isPlaying()) { playPause.setImageResource(R.drawable.pause); } } }); }
扫描歌曲:private void scanMp3Files() { fileList = new ArrayList<String>(); fileListPath = new ArrayList<String>(); final File[] file = new File(MUSIC_PATH).listFiles(); readFile(file); files = fileList.toArray(new String[1]); filesPath = fileListPath.toArray(new String[1]); }
读取歌曲: private void readFile(final File[] file) { for (int i = 0;(file != null) && (i < file.length);i++) { if (file[i].isFile() && (file[i].getName().endsWith("mp3"))) { fileList.add(file[i].getName()); fileListPath.add(file[i].getPath()); }else if (file[i].isDirectory()) { final File[] tempFileList = new File(file[i].getAbsolutePath()).listFiles(); readFile(tempFileList); } } }
intent方法连接到音乐服务器:
private void connectToMusicService(){ Intent intent = new Intent(MainActivity.this, MusicService.class); startService(intent); bindService(intent, serviceConnection, BIND_AUTO_CREATE); }
播放音乐:
private void play(int position,int resId) { if (musicBinder.isPlaying()) { musicBinder.stopPlay(); playPause.setImageResource(R.drawable.play); }else { musicBinder.startPlay(position,currentPosition); playPause.setImageResource(R.drawable.pause); } }
4.代码链接:https://git.coding.net/huanmeng80/myj_1600802053.git
5.apk及apk运行录屏 链接:https://git.coding.net/huanmeng80/apk.git
(apk可以成功运行,为了方便老师批阅,直观看本项目apk,特此录屏)
posted on 2018-12-09 21:25 幻梦huanmeng 阅读(185) 评论(0) 编辑 收藏 举报