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. zabbix监控rds

    问题:使用zabbix监控rds,用之前的脚本,执行总是会有密码安全提示: [root@iZ25m1box8cZ alertscripts]# sh rds.sh Uptime mysqladmin: ...

  2. LinkedBlockingDeque

    1.LinkedBlockingDeque public class LinkedBlockingDeque<E> extends AbstractQueue<E> imple ...

  3. 技术福利:mysql数据库的基本命令汇总整理

    一.创建数据库: create database database_name: php中创建数据库的两种方法:(mysql_create_db(),mysql_query()) $conn = mys ...

  4. 【2017-05-21】WebForm内置对象:Session、Cookie,登录和状态保持

    1.Request -获取请求对象 string s =Request["key"]; 2.Response  -  响应请求对象 Response.Redirect(" ...

  5. ke

    #include <stdio.h> #include <stdlib.h> // For rand() and srand() #include <time.h> ...

  6. 浅谈MVC异常处理

    在日常开发中,我们会去捕捉很多的异常,来进行处理,通常我们的方法就是,在需要进行异常处理的地方加上 try catch 块,但是,如果需要异常处理的地方很多,那么,就会频繁的去写try catch 块 ...

  7. centos6.5 ssh免密码登陆

    ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1

  8. javaScript-什么是变量?

    什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名 ...

  9. ZooKeeper分布式锁浅谈(一)

    一.概述 清明节的时候写了一篇分布式锁概述,里面介绍了分布式锁实现的几种方式,其实那时候我一直沉迷于使用redis的悲观锁和乐观锁来实现分布式锁,直到一个血案的引发才让我重新认识了redis分布式锁的 ...

  10. Dom元素的Property和Attribute

    Attribute就是DOM节点自带的属性,例如html中常用的id.class.title.align等: 而Property是这个DOM元素作为对象,其附加的内容,例如childNodes.fir ...