MusicLibrary:一个丰富的音乐播放封装库

article/2025/11/5 18:42:20

code小生,一个专注 Android 领域的技术分享平台

作者:lizixian18
链接:https://github.com/lizixian18/MusicLibrary
声明:本文是 lizixian18 投稿,转载等请联系作者获得授权。


640

MusicLibrary

一个丰富的音乐播放封装库,针对快速集成音频播放功能,你值得拥有。

前序

在日常开发中,如果项目中需要添加音频播放功能,是一件很麻烦的事情。一般需要处理的事情大概有音频服务的封装,播放器的封装,通知栏管理,联动系统媒体中心,音频焦点的管理,播放列表维护,各种API方法的编写等等…如果完善一点,还需要用到IPC去实现。
可见需要处理的事情非常多。
所以 MusicLibrary 就这样编写出来了,它的目标是帮你全部实现好所有音频功能相关的事情,让你可以专注于其他事情。

特点

MusicLibrary 具有下面特点:

  • 轻松播放本地和网络音频

  • 基于IPC实现音频服务,减少应用内存峰值,避免OOM。

  • 集成和调用API非常简单,音频功能几乎可以集成到一个语句中。

  • 提供丰富的API方法来轻松实现各种功能。

  • 用一句话,您可以自定义通知栏和系统通知栏来自定义通知栏的控件。

  • 集成MediaPlayer和ExoPlayer播放器,可自由切换

  • 支持多种音频格式并支持音频直播流(DASH, SmoothStreaming, HLS,rtmp.)。

  • 支持保存播放进度。

  • 支持边播边存功能,没网也能播。

  • 支持改变播放速度和改变播放音调。

项目状态

经过几个版本的迭代,MusicLibrary 已经基本稳定,并已经在多个项目中实践使用。

使用例子

为了更好地展示 MusicLibrary 的功能,所以写了一个简单的音乐播放器,在里面可以看到具体的使用方法, 具体请参考 NiceMusic

使用方式

1.导入library

allprojects {
   repositories {
       maven{url 'https://dl.bintray.com/lizixian/MusicLibrary'}
   }
}

dependencies {
   implementation 'com.lzx:MusicLibrary:1.3.6'
}

如果你的 appcompat-v7 包使用的是 27+,那么需要额外引用 support-media-compat 例如:

implementation 'com.android.support:support-media-compat:27.1.1'
  1. 添加 MusicLibrary 到你的 Application 中

public class NiceMusicApplication extends Application {

   @Override
   public void onCreate() {
       if (!BaseUtil.getCurProcessName(this).contains(":musicLibrary")) {
           MusicLibrary musicLibrary = new MusicLibrary.Builder(this)
                             .build();
           musicLibrary.init();
       }
   }
}

初始化说明

  1. 因为音乐服务是运行在 musicLibrary 进程里面的,多进程的情况下,Application 会创建多次,所以需要加上以上判断,在非 musicLibrary 进程里面初始化。
    当然,如果你的项目中包含两个以上的进程,则判断方式需要改改,改成在你的主进程下初始化即可。

  2. 初始化的时候通过 Bulider 模式还有一些参数可以配置:

  • setAutoPlayNext(boolean autoPlayNext) 是否在播放完当前歌曲后自动播放下一首

  • setUseMediaPlayer(boolean isUseMediaPlayer) 是否使用 MediaPlayer

  • setNotificationCreater(NotificationCreater creater) 通知栏配置

  • setCacheConfig(cacheConfig) 边播边存配置

  • giveUpAudioFocusManager() 放弃音频焦点管理,放弃后,多个音频一起会混播

  1. 简单应用 (播放一首音乐):

SongInfo songInfo = new SongInfo();
songInfo.setSongId("your song Id");
songInfo.setSongUrl("your song url");

MusicManager.get().playMusicByInfo(songInfo);

最少要设置 songId 和 songUrl 才能播放。若要播放本地音频或者 assets 文件夹下的音频,或者 m3u8 等流式音频,用法一样,只要设置对 songUrl 和 songId 就行。

使用文档

  1. Model字典

    详细见 Model字典说明(https://github.com/lizixian18/MusicLibrary/blob/master/readme/model.md)

  2. 播放器API

    详细见 API说明(https://github.com/lizixian18/MusicLibrary/blob/master/readme/api.md)

  3. 通知栏集成

    详细见 通知栏集成(https://github.com/lizixian18/MusicLibrary/blob/master/readme/notification.md)

  4. 边播边存配置说明

    详细见 配置边播边存功能(https://github.com/lizixian18/MusicLibrary/blob/master/readme/playcache.md)

  5. 代码实现以及原理

    详细见 代码实现以及原理(https://github.com/lizixian18/MusicLibrary/blob/master/readme/principle.md)

PS:

  • 如果你有想法或者意见和建议,欢迎提issue,喜欢点个star。欢迎各位大佬指点指点。


640

开源库

推荐几个开源库


http://chatgpt.dhexx.cn/article/hU9nITcj.shtml

相关文章

MusicBox

MusicBox 编写音乐盒代码&#xff0c;并添加音乐播放的 上一首 和 下一首 控制。 1.添加所需的图片以及音乐文件&#xff1b; 2.编写xml文件&#xff0c;上一首、下一首、暂停、播放按钮以及歌曲的名字和作者 <?xml version"1.0" encoding"utf-8"?&…

Musicplayer

Musicplayer Python 音乐播放器 功能&#xff1a; 首先可以实现本地音乐的播放&#xff0c;能够打开电脑端的文件&#xff0c;文件中进行多选&#xff0c;实现暂停、上一曲、下一曲的功能。在此基础上&#xff0c;完成随机播放列表和网络端下载的功能。 设计方法&#xff1a; 本…

MusicBox(音乐播放器)

这两天做了一个小型的音乐播放器&#xff0c;基本功能都已实现&#xff0c;同时也让我对CSliderCtrl&#xff0c;MCI_OPEN_PARMS以及控件之间的消息映射&#xff0c;数据转换等有了更深入的理解&#xff0c;下面是自己编程的详细过程&#xff1a; 1 首先将控件的位置都摆好&a…

musicbox使用方法_使用Pi MusicBox收听流音乐

musicbox使用方法 在用Raspberry Pi 控制圣诞树灯的项目完成之后&#xff0c;下一个项目是什么&#xff1f; 我最终开始尝试使用Pi Musicbox进行修补&#xff0c;这是Mopidy的Raspbian的一种版本 &#xff0c;它允许用户在“无头”的Raspberry Pi上播放各种流媒体服务&#xff…

推荐一个高大上的网易云音乐命令行播放工具:musicbox

网易云音乐上有很多适合程序猿的歌单&#xff0c;但是今天文章介绍的不是这些适合程序员工作时听的歌&#xff0c;而是一个用Python开发的开源播放器&#xff0c;专门适用于网易云音乐的播放。这个播放器的名称为MusicBox, 特色是用命令行版本执行音乐的播放。 github地址&…

移动开发技术(三)MusicBox

实验要求 使用广播机制&#xff0c;编写音乐盒代码&#xff0c;添加音乐播放的播放、暂停、停止、上一首和下一首控制 实验步骤 一、布局设置 添加一个LinearLayout&#xff0c;选择垂直分布。在里面添加两个LinearLayout&#xff1a; ①music_show&#xff1a;用于展示图片…

Gap Statistic算法详解

在Kmean算法确定K值的问题里&#xff0c;可以使用手肘法&#xff0c;也可以用Gap statistic 算法。手肘法的缺点是不够自动化&#xff0c;而Gap不再需要“手肘法”式的肉眼判断&#xff0c;而只需要找出使Gap Statistic最大的K值即可。因此&#xff0c;Gap和适用于批量化作业。…

IDEA 统计插件Statistic:查看你的代码量

最近接触了一款IDEA统计代码量的插件Statistic&#xff0c;简介一下Statistic的安装。 一、插件下载安装 File->Settings->Plugins&#xff0c;输入Statistic&#xff0c;点击install,安装完后选择重启idea。 二、运行使用 重启完后&#xff0c;点击refesh即可看到代码量…

idea中安装统计代码statistic插件

百度一圈都是直接在idea中安装statistic插件&#xff0c;就不再重复 1.从官网下载&#xff1a;http://plugins.jetbrains.com/plugin/4509-statistic/versions 插件包 到本地 2.选择从本地安装 3. 4.重启idea 5.工具栏

探索 t Statistic的稳健性

探索 t Statistic的稳健性 探索t-statistic 的稳健性 假设有2组数据&#xff0c;x1,…,xm; y1,…,yn。 t-test的假设为两组数据的平均值无差异 即&#xff1a; 令X和Sx为为x数组的平均值和标准差&#xff0c;Y和Sy为y数组的平均值和标准差&#xff1b;则H0的判别式为 在H0…

AS 使用Statistic插件统计代码行数

1.下载插件及安装 点击File → Setting→ Plugins&#xff0c;搜索Statistic插件&#xff0c;点击install按钮安装插件。 2.插件使用 安装成功后重启AS&#xff0c;在View→Tool Windows→Statistic&#xff0c;选择后AS底部会显示Statistic按钮&#xff0c; 点击Refresh按钮…

IDEA 统计Statistic插件下载地址

IDEA 统计Statistic插件安装地址 https://plugins.jetbrains.com/plugin/4509-statistic/versions

idea-统计代码行数Statistic

idea统计代码行数可以用到插件&#xff1a;Statistic。 步骤&#xff1a; File→Settings进入Plugins点击Marketplace搜索Statistic 安装蓝框标出的插件 重启idea后就可以看到效果了&#xff08;图是拿的别人的&#xff0c;基本就是这效果&#xff09;如果没有下边的stat…

IDEA代码统计插件Statistic-统计项目代码文件数及代码行数

今天被问到项目的代码量及代码行数&#xff0c;由于项目代码量还挺多&#xff0c;第一时间想到idea有没有插件可以统计&#xff0c;经过搜索&#xff0c;还真有&#xff0c;当然也可以自己写代码实现。 以下介绍Statistic的安装及使用。 1、在IDEA左上角点击File->Setting…

idea中代码统计工具Statistic的配置与使用

idea中代码统计工具Statistic的配置与使用 有的同学在idea中下载了statistic的插件但是就是没看到这个插件的标志&#xff0c;这是因为插件对应了不同的版本,需要下载对应的版本&#xff1a;https://plugins.jetbrains.com/plugin/4509-statistic/versions 下载完成之后File—…

Intellij idea使用Statistic统计代码行数的方法

一、安装Statistic 1、打开IDEA 2、打开settings进行设置 3、选择plugins&#xff0c;搜索Statistic并安装 4、下载完成之后&#xff0c;重启IDEA&#xff0c;此时Statistic就安装好了 二、使用Statistic 1、安装好Statistic之后我们可以通过以下步骤 将Statistic插件的控制台展…

IDEA - 如何安装Statistic代码统计插件?

插件地址 插件下载 插件选择 &#xff08;1&#xff09;如果IDEA的版本比较新&#xff0c;IDEA会自动选择Statistic对应的版本&#xff1b; &#xff08;2&#xff09;如果IDEA的版本比较老&#xff0c;请使用Statistic的3.8.1版本。 如何安装 1. 在线搜索并安装 2. 离线…

GIT统计代码量及IDEA Statistic统计解析

GIT统计代码量 Git统计个人提交代码行数 git log --format%aN | sort -u | while read name; do echo -en "$name\t"; git log --author"$name" --prettytformat: --numstat | awk { add $1; subs $2; loc $1 - $2 } END { printf "added lines:…

idea查看代码行数Statistic

软著需要知道代码行数&#xff0c;安装Statistic插件即可。 安装后&#xff0c;重启&#xff0c;点击左下角“refresh”即可查看各类文件行数 可以设置统计代码的文件格式

IDEA统计代码量Statistic插件

IDEA统计代码量Statistic插件 Statistic插件安装步骤1、步骤&#xff08;文字&#xff09;2、步骤&#xff08;图&#xff09; 结尾 Statistic插件 Statistic插件&#xff0c;IDEA中用来统计代码量的插件&#xff0c;话不多说上步骤。安装步骤 1、步骤&#xff08;文字&#…