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音乐播放器源码(歌词.均衡器.收藏.qq5.0菜单.通知)

    一款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音乐播放器(Service+ContentProvider+Broadcast+Activity四大组件完成)

    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. 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

    [exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后 ...

  2. 自坑实录 - Asp.net MVC中无法使用@Ajax.BeginForm问题解决

    创建空的web项目,通过Nuget引用mvc组件来搭建空的MVC项目时, 在视图页面中无法使用@Ajax.BegForm来进行异步提交数据, 而新建默认的MVC模板项目却能够正常使用@Ajax.Beg ...

  3. caffe的Matlab接口安装

    参考博文:http://blog.csdn.net/thystar/article/details/50720691 0. Caffe安装及Matlab安装 1. Caffe中matcaffe配置 c ...

  4. 如何设置SecureCRT快捷键

    第一步,打开Tools -> Keymap Editor: 2.用鼠标点击要设置的快捷键,这里以F3为例,然后选择Map Select Key 3.弹出的对话框中,Function一栏选择Run ...

  5. KafKa+Zookeeper+Flume部署脚本

    喜欢学习的朋友可以收藏 愿意了解框架技术或者源码的朋友直接加求求(企鹅):2042849237

  6. centos mysql5.7 二进制包安装

    此种方式安装非常简单 cd /usr/local 下载安装包wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux- ...

  7. Android 工程集成React Native 0.44 注意点

    当前(2017年5月22日 )React Native开发相当火爆,但是搜索下来,没有最新版本0.44集成的教程,因此尝试了一下如何集成到Android原生工程中去.本篇旨在记录出现的问题以及应对方式 ...

  8. Eclipse 扩展activiti-desinger 安装

    activiti-desinger 工作流画图工具分为在线安装.离线安装两种方式:下图提供当前所用eclipse版本信息 1.1        在线安装 打开Eclipse -> Help -& ...

  9. JS高级-数据结构的封装

    最近在看了<数据结构与算法JavaScript描述>这本书,对大学里学的数据结构做了一次复习(其实差不多忘干净了,哈哈).如果能将这些知识捡起来,融入到实际工作当中,估计编码水平将是一次质 ...

  10. Azure Event Hub 技术研究系列3-Event Hub接收事件

    上篇博文中,我们通过编程的方式介绍了如何将事件消息发送到Azure Event Hub: Azure Event Hub 技术研究系列2-发送事件到Event Hub 本篇文章中,我们继续:从Even ...