在老师给的代码基础上做了一些改动

实验要求

  1. 音乐播放器添加音乐播放的 上一首 和 下一首 控制
  2. 将广播嵌入了服务
  3. 实现一些进阶功能:显示专辑封面、歌曲名称、歌手姓名和进度条

最终页面展示

实验步骤

  1. 布局文件

2.创建一个assets文件夹,放置音频

  1. JAVA文件里的主要方法
 // 自定义的BroadcastReceiver,负责监听从Service传回来的广播public class ActivityReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// 获取Intent中的update消息,update代表播放状态int update = intent.getIntExtra("update", -1);// 获取Intent中的current消息,current代表当前正在播放的歌曲int current = intent.getIntExtra("current", -1);if (current >= 0) {title.setText(titleStrs[current]);author.setText(authorStrs[current]);cover.setImageResource(covers[current]);}switch (update) {case 0x11:play.setImageResource(R.drawable.pause);status = 0x11;break;// 控制系统进入播放状态case 0x12:// 播放状态下设置使用暂停图标play.setImageResource(R.drawable.play);// 设置当前状态status = 0x12;break;// 控制系统进入暂停状态case 0x13:// 暂停状态下设置使用播放图标play.setImageResource(R.drawable.pause);// 设置当前状态status = 0x13;break;case 0x14://设置使用停止图标play.setImageResource(R.drawable.pause);// 设置当前状态status = 0x14;break;}}}
  // 为MediaPlayer播放完成事件绑定监听器mPlayer.setOnCompletionListener(new OnCompletionListener(){@Overridepublic void onCompletion(MediaPlayer mp) {current++;MainActivity.audioSeekBar.setMax(0);if (current >= 5) {current = 0;}//发送广播通知Activity更改文本框Intent sendIntent = new Intent(MainActivity.UPDATE_ACTION);sendIntent.putExtra("current", current);// 发送广播,将被Activity组件中的BroadcastReceiver接收到sendBroadcast(sendIntent);// 准备并播放音乐prepareAndPlay(musics[current]);}});
public class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(final Context context, Intent intent) {int control = intent.getIntExtra("control", -1);switch (control) {// 播放或暂停case 1:// 原来处于没有播放状态if (status == 0x11) {// 准备并播放音乐prepareAndPlay(musics[current]);status = 0x12;}// 原来处于播放状态else if (status == 0x12) {// 暂停mPlayer.pause();// 改变为暂停状态status = 0x13;}// 原来处于暂停状态else if (status == 0x13 || status == 0x14) {// 播放mPlayer.start();// 改变状态status = 0x12;}break;// 停止声音case 2:// 停止播放mPlayer.stop();status = 0x14;break;case 3:current++;if(current < 0)current = 0;prepareAndPlay(musics[current]);break;case 4:current++;if(current > musics.length-1)current = 0;prepareAndPlay(musics[current]);break;}// 广播通知Activity更改图标、文本框Intent sendIntent = new Intent(MainActivity.UPDATE_ACTION);sendIntent.putExtra("update", status);sendIntent.putExtra("current", current);// 发送广播,将被Activity组件中的BroadcastReceiver接收到sendBroadcast(sendIntent);}}

代码链接:添加链接描述

Android studio 音乐播放器相关推荐

  1. android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...

    我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...

  2. Android studio音乐播放器

    (资源下载链接在文末) 实现功能:播放,暂停,下一曲,上一曲,注册,登录,更改背景图片.     首先在AndroidManifest.xml 声明server 和对SD卡中的文件进行操作的权限 &l ...

  3. Android Studio音乐播放器and视频播放器

    音频 package com.example.day7;import android.media.AudioManager; import android.media.SoundPool; impor ...

  4. 【Android】音乐播放器APP的设计与实现

    [Android]音乐播放器APP的设计与实现 一.界面设计 二.核心代码 一.界面设计 (1)注册登录 (2)主界面 (3)音乐播放器 可以实现开始,暂停,下一首,上一首功能:滑动进度条可以改变音乐 ...

  5. 三款Android平台音乐播放器多方位对比

    音乐播放器作为重要的娱乐工具,在PC端异常重要,在移动端同样如此.移动端的音乐播放器很多,巨头们纷纷在这个领域布局,腾讯百度等均拥有各自的移动端音乐播放器.爱好音乐的机友们也面临较多的选择. 小编在这 ...

  6. android仿音乐播放器,Android仿音乐播放器功能

    本文实例为大家分享了Android仿音乐播放器功能的具体代码,供大家参考,具体内容如下 读取本地音乐文件 源代码: import android.media.MediaPlayer; import a ...

  7. Android 自定义音乐播放器实现

    Android自定义音乐播放器 一:首先介绍用了哪些Android的知识点: 1 MediaPlayer工具来播放音乐 2 Handle.因为存在定时任务(歌词切换,动画,歌词进度条变换等)需要由Ha ...

  8. android 小型音乐播放器(实现播放、下一首、上一首、自动播放、随机播放按钮、当前播放歌曲界面)

    该文章主要针对 android 的音乐播放器软件进行简单的功能添加:播放.断点播放.停止.上一曲.下一曲.随机播放.显示当前播放歌曲(后续会为当前显示的播放添加动画): 软件开发流程: 1.先向内存卡 ...

  9. Android在线音乐播放器

    波尼音乐 系列文章 Android开源在线音乐播放器--波尼音乐 Android开源音乐播放器之播放器基本功能 Android开源音乐播放器之高仿云音乐黑胶唱片 Android开源音乐播放器之自动滚动 ...

最新文章

  1. 机器人视觉的九大挑战
  2. 通过访问列表实现MAC地址绑定,实现包过滤
  3. 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...
  4. Linux Network Administrators Guide
  5. jQuery中ready与load事件的区别
  6. Appfuse 教程
  7. 【渝粤教育】国家开放大学2019年春季 2610药剂学 参考试题
  8. Atitit uke plnsy安全隐私保护法案 目录 第一章 一般规定 2 第1节 主题与目标 2 第二章 常见安全原则 3 第1节 隔离 保密 shell 3 第2节 隐藏 保密 不出头 3
  9. 关于计算机教育的图表,计算机教育箭头环形图表PPT模版.ppt
  10. 英语单词背诵系统(有单词背诵,错词背诵功能)
  11. spring boot 项目页面显示不出来
  12. mysql dbcp 配置文件_数据库连接池DBCP使用方式
  13. OpenCV混合高斯模型前景分离
  14. [数据结构]第十一章-图论
  15. HTML5——如何在网页中加入图片和超链接。
  16. 互联网的盈利方式 赚钱方式
  17. [日记]初中时写的一篇日记
  18. 使用keras-bert进行中文文本分类+Google colab运行源码
  19. 不希望你懈——写给宫岩
  20. Vegas和Pr哪个好?看完这篇你就明白了

热门文章

  1. 使用SQL语句操作数据库
  2. 阿里云上为服务器申请外网网卡并绑定公网ip
  3. jetson Tx2 使用Python打开板载相机with opencv
  4. IT圈子里鬼混,谈谈IT行业的收入和一些生存之道(转)
  5. php中使用redis队列操作实例代码
  6. (转)一切伟大的创造都来源于行业间的相互借鉴模仿
  7. 解决Rust -- update crates.io过慢的问题
  8. python控制风扇_树莓派 温度监控 PWM 控制风扇 shell python c 语言
  9. HTML5期末大作业:家乡网站设计——石家庄(10页) HTML+CSS+JavaScrip 旅游网页html 家乡介绍html网页设计 dw旅游景点网页设计 web课程设计网页规划与设计...
  10. 电子数据检验专用计算机价格,GPCGPC检测 价格:800元/份