Android 音乐播放

时间:2022-08-29 20:05:39

android简单音乐播放控制代码

这个几个月业余时间一直在做一个android项目,里面涉及到了音乐播放功能。很简单那种,播放、暂停、上一曲、下一曲、音量调节等。

音乐播放主要使用的对象是MediaPlayer,这个对象很强大 也提供了很多功能。

mediaplayer 音乐播放主要控制类

 package com.weizhi.common;

 import java.util.ArrayList;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener; /***
* 音乐播放控制
*
* @author wangr
* @date 2016-6-13
*/
public class MusicPlay
{
private MediaPlayer mediaPlayer;
// 当前歌曲播放索引
private int songIndex = 0;
// 歌曲播放列表
private ArrayList<String> songArrayList;
// 是否开始播放
private boolean play = false;
// 回调
private MusicCallBack callBack; /***
* 音乐播放构造函数
*
* @param playList
* 播放列表
* @param callBack
* 回调函数 用于传回当前播放曲目
*/
public MusicPlay(ArrayList<String> playList, MusicCallBack callBack)
{
this.callBack = callBack;
songArrayList = playList; mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(new OnCompletionListener() { // 播放完毕
@Override
public void onCompletion(MediaPlayer arg0)
{
// 播放完毕直接下一首
nextSong(); }
}); } /***
* 下一首
*/
public void nextSong()
{ if (songIndex < songArrayList.size() - 1)
{
songIndex++;
songPlay();
} else
{
// 播放第一首
songIndex = 0;
songPlay(); }
} /**
* 上一首
*/
public void upSong()
{
// 当前等于第一首
if (songIndex == 0)
{
// 播放最后一首
songIndex = songArrayList.size() - 1;
songPlay();
} else
{ songIndex--;
songPlay(); }
} /***
* 播放
*/
private void songPlay()
{
try
{
if (songArrayList.size() > 0)
{
play = true;
mediaPlayer.reset();
mediaPlayer.setDataSource(songArrayList.get(songIndex));
mediaPlayer.prepare();
mediaPlayer.start(); if (this.callBack != null)
{
// 显示当前播放歌曲
callBack.currentPlayer(songArrayList.get(songIndex)
.toString());
}
}
} catch (Exception e)
{
e.printStackTrace();
} } /***
* 播放暂停 适用于播放暂停都是一个按钮
*/
public void pausePlay()
{
if (mediaPlayer.isPlaying())
{
mediaPlayer.pause(); } else
{
// 判断是否已经播放 如果已经播放则当前是暂停 则调用继续播放
if (play)
{
mediaPlayer.start();// 继续播放
} else
{
// 首次播放
songPlay();
}
}
} /**
* 设置音量
* 本身有两个参数 left and right 这里我就设同一个值
* @param ve 范围 0.0-1.0
*/
public void setVolume(float ve)
{
mediaPlayer.setVolume(ve, ve);
}
}

顺便附上文件搜索类

 package com.weizhi.common;

 import java.io.File;
import java.util.ArrayList; /****
* 文件搜索
* @author wangr
* date 2016-6-13
*
*/
public class SearchFile
{
/**
* 文件列表
*/
private static ArrayList<String> lstFile = new ArrayList<String>();
/***
* 获取文件
*
* @param Path 要搜索的目录
* @param Extension 扩展名
*
*/
public static ArrayList<String> GetFiles(String Path, String Extension)
{
File[] files = new File(Path).listFiles();
if (files == null)
return lstFile;
for (int i = 0; i < files.length; i++)
{
File f = files[i];
if (f.isFile())
{
System.out.println("文件:" + f.getPath());
if (f.getPath()
.substring(f.getPath().length() - Extension.length())
.equals(Extension)) // 判断扩展名
lstFile.add(f.getPath()); } else if (f.isDirectory() && f.getPath().indexOf("/.") == -1) // 忽略点文件(隐藏文件/文件夹)
GetFiles(f.getPath(), Extension);
} return lstFile;
} }

音乐回调接口 用于显示当前播放歌曲

 package com.weizhi.common;

 /***
* 音乐回调接口
* @author wangr
* date 2016-6-13
*
*/
public interface MusicCallBack
{
void currentPlayer(String str); }

Android 音乐播放的更多相关文章

  1. Android音乐播放器源码&lpar;歌词&period;均衡器&period;收藏&period;qq5&period;0菜单&period;通知&rpar;

    一款Android音乐播放器源码,基本功能都实现了 qq5.0菜单(歌词.均衡器.收藏.qq5.0菜单.通知) 只有向右滑动出现,菜单键和指定按钮都还没有添加. 源码下载:http://code.66 ...

  2. 一款非常简单的android音乐播放器源码分享给大家

    一款非常简单的android音乐播放器源码分享给大家,该应用虽然很小,大家常用的播放器功能基本实现了,可能有点还不够完善,大家也可以自己完善一下,源码在源码天堂那里已经有了,大家可以到那里下载学习吧. ...

  3. android音乐播放器开发教程

    android音乐播放器开发教程 Android扫描sd卡和系统文件 Android 关于录音文件的编解码 实现米聊 微信一类的录音上传的功能 android操作sdcard中的多媒体文件——音乐列表 ...

  4. android 音乐播放器

    本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...

  5. android音乐播放器&lpar;Service&plus;ContentProvider&plus;Broadcast&plus;Activity四大组件完成&rpar;

    1.获取音乐 1-1:获取手机中的音乐(用ContentProvider内容提供者来完成): package com.firefly.util; import java.util.ArrayList; ...

  6. Android音乐播放器的开发实例

    本文将引导大家做一个音乐播放器,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的ListView和其他一些组件.为了有更好的学习效果,其中很多功能我们手动实现,例如音乐播放的 ...

  7. 【竞品分析】Android音乐播放器的竞品分析

    迄今为止最长的一篇博客,各位看官笑纳~~ 本次分析基于Android平台,选取了几款我体验过的播放器进行比较分析.主要分为两类,一类是大而全的,功能全面,可满足用户管理歌曲.导入导出歌单等多方面需求, ...

  8. Android音乐播放器的设计与实现

    目录 应用开发技术及开发平台介绍 应用需求分析 应用功能设计及其描述 应用UI展示 一.应用开发技术及平台介绍 ①开发技术: 本系统是采用面向对象的软件开发方法,基于Android studio开发平 ...

  9. Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)

    效果: 问题:可拖动进度条随进度条移动时,会致使音乐卡顿(待解决) xml <?xml version="1.0" encoding="utf-8"?&g ...

随机推荐

  1. ssh无密码登录The authenticity of host &&num;39&semi;localhost &lpar;&colon;&colon;1&rpar;&&num;39&semi; can&&num;39&semi;t be established&period;

    The authenticity of host 'localhost (::1)' can't be established. http://blog.csdn.net/cyuyan112233/a ...

  2. CSS、j&&num;39&semi;s单行、多行文本溢出显示省略号

    在项目中,由于实际描述文字过多,导致初始页面纵向长度过长,也使得余下信息利用率降低:所以在文字过多的时候,初始化限制行数是有必要的 1. CSS单行文本溢出,显示省略号 <div style=& ...

  3. mysql dba系统学习(6)二进制日志binlog之二

    MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点.MySQL R ...

  4. JS虚拟键盘

    由于是触摸屏,所以需要一款JS虚拟键盘.上网找了一个好用的VirtualKeyboard,作了修改. 修改该插件参考的博客文章:http://www.cnblogs.com/xinggong/arch ...

  5. js判断IE6(推荐方法一)

    不得不使用判断的方法 //方法1:推荐 if ( /MSIE 6/.test(navigator.userAgent)){ } //方法2: if ( navigator.appVersion.ind ...

  6. HttpResponseRedirect VS HttpResponse

    当我们处理了post提交的数据之后,我们使用HttpResponseRedirect跳转到另一个页面,而不是用HttpResponse. 例如当一个投票环节时使用HttpResponse可以使用浏览器 ...

  7. Xcode8插件安装

    一.创建一个自定义证书并且为Xcode重新签名1.打开钥匙串 2.创建自定义签名证书 3.重新签名Xcode(速度比较慢,大概要等1分钟) $ sudo codesign -f -s XcodeSig ...

  8. GPIO复位功能说明

    根据STM32L0x3参考手册RM0367,每个General-Purpose IO口,有以下寄存器: 1.4个32位的控制寄存器,分别为GPIOx_MODER,GPIOx_OTYPER,GPIOx_ ...

  9. Android动态修改ToolBar的Menu菜单

    Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了. 开始上货 Menu Me ...

  10. php Excel 导入功能

    下载excel类地址 https://pan.baidu.com/s/19MqAHUn4RyZ5HEAChyC0jg  密码:mn58 本人用的thinkcmf框架 把类文件放在框架的类文件里面,下面 ...