android音乐播放器完整教程,android实现简单音乐播放器
本文实例为大家分享了android音乐播放器的具体代码,供大家参考,具体内容如下
话不多说先上效果
前言
写这个音乐播放器实在是迫不得已。因为我们Andoird课程要求写一个音乐播放器。所以就有了此项目。这个项目比较简单,实现了最基本的音乐播放功能,然后界面是仿照着网易云音乐的样式,写的想写成一样但是技术不够。
基本的音乐播放
设置播放音乐文件
Android播放媒体文件大概都是使用MediaPlayer这个类来操作的。
在播放音乐前,必须要给这个MediaPlayer设置一要播放的东西,对于文件资源来说(音乐,视频都算一种文件资源),能够唯一标识它的就是文件的地址(路径)。我们这里使用的是本机音乐,那么就使用文件路径就可以。
private static final MediaPlayer mediaPlayer = new MediaPlayer();
/**
* 设置播放文件
* @param path
*/
public static void setPlayPath(String path){
try {
// 设置类型
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// 这里要reset一下啊 (当已经设置过音乐后,再调用此方法时,没有reset就会异常)
mediaPlayer.reset();
mediaPlayer.setDataSource(path);// 设置文件源
mediaPlayer.prepare();// 解析文件
} catch (IOException e) {
e.printStackTrace();
}
}
播放音乐
设置完播放文件后,下一步就是音乐的播放、暂停、跳进度播放等等。
这里先介绍MediaPlayer的自带方法
mediaPlayer.isPlaying();// 是否正在播放
mediaPlayer.start(); // 开始播放,如果已经在播放不会有什么效果
mediaPlayer.stop(); // 停止播放 - 不可以使用start重新开始
mediaPlayer.pause(); // 暂停当前播放
mediaPlayer.seekTo(0); // 移动到某一播放进度
mediaPlayer.getCurrentPosition();// 获取当前播放进度
了解了上面的方法后那么就可以实现几乎所有的音乐播放功能。
那么要实现音乐播放功能只需要在调用了setPlayPath(path)后再调用mediaPlayer.start()就能成功的播放音乐前提条件是你确实的设置了正确的音乐路径
获取音乐的信息
获取音乐信息可以使用MediaMetadataRetriever类来获取。它和MediaPlayer也需要一个文件路径来寻找到音乐。
private static final MediaMetadataRetriever mmr = new MediaMetadataRetriever();
public static Song getSong(String path){
Song song = new Song();// 自己定义的歌曲类
song.setPath(path);
// 获取音乐相关信息
mmr.setDataSource(path);
// 歌曲名
String title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
song.setTitle(title);
// 唱片集
String album = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
song.setAlbum(album);
// (艺术家)歌手
String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
song.setArtist(artist);
// 歌曲长度(时间长度 单位 mm)
int duration = Integer.parseInt(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)); // 播放时长单位为毫秒
song.setDuration(duration);
// 歌曲的图片
byte[] image = mmr.getEmbeddedPicture();// 图片,可以通过BitmapFactory.decodeByteArray转换为bitmap图片
// BitmapFactory.decodeByteArray(image, 0, image.length);
song.setImage(image);
return song;
}
其他功能
其他功能都是基于Android的事件和以上播放功能加上MediaMetadataRetriever获取音乐信息来实现的。所以就不详细介绍直接贴代码吧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
android音乐播放器完整教程,android实现简单音乐播放器相关推荐
- android版音乐播放器开发教程,Android音乐播放器开发文档(20200907152026).pdf
Android 音乐播放器 撰写人:张 XX 2011-3-15 一. 问题定义 本软件是为了用户智能手机 Android 而开发的一套智能软件, 提供在线 下载音乐,在线播放音乐,读取 SD 卡音乐 ...
- Android手机应用开发(八) | 制作简单音乐播放器
实验目的 学会使用MediaPlayer 学会简单的多线程编程,使用Handler更新UI 学会使用Service进行后台工作 学会使用Service与Activity进行通信 效果预览 布局 进度条 ...
- 安卓java音乐播放器下一曲_Android实现简单音乐播放器(MediaPlayer)
Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个 ...
- android studio如何编译测试,Android Studio 进行单元测试完整教程
前言 为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作. 我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿. 我的AndroidStudio 我的An ...
- Windows + Ubuntu下JDK与adb/android环境变量配置完整教程
假设JDK和android sdk路径分别如下: D:\Program Files\Java\jdk D:\android-sdk 1.JDK环境变量配置 JAVA_HOME=D:\Program F ...
- Android Kotlin Paging3 Flow完整教程
准备好接口 package com.example.android_learn_paging.netimport com.example.android_learn_paging.model.NetD ...
- gear2刷Android n,gear2 Root完整教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 其实上上周都出了,因为上周没空翻译,所到今天翻译完才发布.尽量的原文,下面拷过来的东西很多遗漏 原文:http://tzmm.com.cn/index.p ...
- js html5 音乐播放器代码大全,js实现简单音乐播放器
本文实例为大家分享了js实现音乐播放器的具体代码,供大家参考,具体内容如下 效果图: 可播放暂停继续播放,进度条可拖动,时间展示,声音调节 完整代码(直接拿来用) audio功能开发 * { marg ...
- android sdk 5.0 安装教程,Android SDK 设置
Android SDK 设置 要在 Android 设备上构建并运行代码,首先必须遵循以下步骤.使用 Unity 或者从头开始编写 Android 应用程序均是如此. 1. 下载 Android SD ...
最新文章
- 女生学软件测试有哪些优势
- 数据蒋堂 | BI系统中容易被忽视的数据源功能
- SppNet 多尺度训练
- FastDFS配置手册trackerstorage
- TIDB事务过大transction too large解决方法
- C语言size_t类型
- ios 持续获取定位 高德地图_iOS开发-- 高德地图的接入使用(1)定位
- android studio 4.0 去掉标题栏
- 《软件评测师教程》学习笔记-第一章:软件测试概述
- 好用的mysql数据字典工具
- 开关电源/LDO反馈电阻辅助计算工具PowerHelper使用介绍
- 如果你想专升本那就一定要看的专升本语文_文学常识完整版(四)
- ABT 共识社区北京聚会 共建去中心化生态 | ArcBlock 社区
- vue中如何优雅实现爷孙组件的数据通信($attrs/$listeners)
- min-height不生效
- Android音乐App桌面图标制作以及启动页面开发(简易音乐 一)
- 15、wxapp - 小程序登录以及全局参数 - 微擎小程序模块应用开发
- 网络知识点------SBC和BSC的定义
- 中国排球市场趋势报告、技术动态创新及市场预测
- Linux基础 第一节 第二课
热门文章
- ANSYS——对称模型对称边界的确定以及对称边界的约束施加问题
- java安全权限配置_使用Spring安全表达式控制系统功能访问权限问题
- 计算机网络课程思政教学设计,信息与网络工程学院成功举办第一届课程思政教学设计大赛...
- 【计算机算法设计与分析】——5.4最优二分检索树
- 基于word API 创建的可以打开word的自定义控件
- UITextField实时监听输入文本的变化
- 06jQuery-04-DOM操作
- 关于ASP.NET MVC
- java定时执行一次_java Timer(定时调用、实现固定时间执行)
- linux 命令tf,Linux文件管理命令