# iMusic
**Repository Path**: toorup/iMusic
## Basic Information
- **Project Name**: iMusic
- **Description**: No description available
- **Primary Language**: Android
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-11-30
- **Last Updated**: 2023-11-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# **iMusic**
### 此项目已不再更新维护!!!
### 视频播放需求请使用:[iPlayer][0],功能特性支持包括但不限于:
* 支持网络地址、直播流、本地Assets和Raw资源文件播放
* 支持播放倍速、缩放模式、静音、镜像等功能设置
* 支持自定义视频解码器、自定义控制器、自定义UI交互组件
* 支持多播放器同时播放
* SDK默认控制器(局部UI交互可自定义)支持手势控制、付费试看等交互
* 支持任意位置启动Activity级别悬浮窗口播放
* 支持任意位置启动全局悬浮窗口播放
* 支持任意位置直接启动全屏播放
* 支持连续播放视频列表
[0]: https://github.com/hty527/iPlayer "iPlayer"
### 免责声明:
此项目中应用到了自行收藏的歌单列表、酷狗API、开眼API,纯属Demo演示,无任何商业用途,禁止任何人将示例项目中的第三方API应用于商业用途,如果使用了,连带的法律责任与本作者无关!
[Android音乐播放器封装]: https://www.jianshu.com/p/9051b96c02f9 "Android音乐播放器封装"
**音乐播放器:**[Android音乐播放器封装]
[Android视频播放器封装]: https://www.jianshu.com/p/39d8f824c2fb "Android视频播放器封装"
**视频播放器:**[Android视频播放器封装]
基于原生MediaPlayer解码器封装的音乐播放器和视频播放器功能库。极简接入、功能全面、体积甚小。欢迎Star!欢迎下载apk体验!
iMusic示例工程主要界面遵循MVP思想开发,搜索音乐API取自《酷狗音乐》开放API,视频资源API取自《开眼视频》。禁止直接使用此项目中的API于商业行为中,一经使用,与本作者无关!
* Demo apk[下载][1]
[1]: https://amuse-1259486925.cos.ap-hongkong.myqcloud.com/apk/iMusic-1.1.9.apk "下载"
___
## 功能演示及概述:
#### 功能演示:(更多功能快照在结尾处)
* 音乐播放器预览(如播放不流畅请点击图片查看)
* 视频播放器预览
#### 功能概述:
**1.音乐播放器**
* 网络音乐播放
* 本地音乐检索播放
* 全局悬浮窗口播放,精准的扇形区域碰撞检测
* 搜索歌手、专辑、歌曲名播放(iMusic)
* 播放器歌词显示、自定义歌词解析器(>=1.0.7)
* 自1.0.9版本起开放 退出APP后,后台播放能力。iMusic已对重开处理
* 基本常规操作示例播放器
* 锁屏播放控制
* 自定义唱片机、锁屏界面、通知栏
* 状态栏通知控制
* 定时关闭播放
* 播放模式设置
* 对音乐收藏至本地
* 最近播放记录浏览
* 已对音频输出焦点管理作处理
***
**2.视频播放器**
* 支持自定义视频控制器
* 支持自定义封面控制器
* 支持自定义手势识别调节器
* 支持4种画面缩放模式设置
* 支持界面跳转无缝衔接播放
* 迷你小窗口播放、支持屏幕中拖拽
* 全局悬浮窗播放、支持屏幕全局拖拽
* 全屏播放下手势识别调节音量、屏幕亮度、快进、快退
* 支持全局悬浮窗播放器中无缝切换至Activity播放界面
* 列表单例播放
* 列表横竖屏切换
* 常规横竖屏切换
* 已对视频输出焦点管理作处理
## 历史版本
[查看历史版本]: https://github.com/Yuye584312311/iMusic/wiki/HistoryVersion "历史版本"
**[查看历史版本]**
## 一.音乐播放器集成:
**1.依赖**
* 项目根build.gradle中加入:
```
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```
* 模块build.gradle中加入:
```
dependencies {
implementation 'com.github.hty527.iMusic:music-player:1.2.0'
}
```
**2.MainActivity播放器初始化**
```
@Override
protected void onCreate() {
super.onCreate();
//初始化播放器内部存储及服务组件。此initialize方法为重载方法,请阅读内部入参说明
MusicPlayerManager.getInstance().init(getApplicationContext()).initialize(MainActivity.this);
//其他功能初始化请下方【其他功能初始化】
}
@Override
protected void onDestroy() {
super.onDestroy();
//播放器反初始化。此方法为重载方法,请阅读内部入参说明
MusicPlayerManager.getInstance().unInitialize(MainActivity.this);
}
```
[其他功能初始化]: https://github.com/Yuye584312311/iMusic/wiki/MusicPlayerWiki "音乐播放器API介绍"
完整初始化[其他功能初始化]
**3.开始播放你的音频任务**
```
/**
* audios:待播放的歌单列表,音频对象需继承BaseAudioInfo类,请阅读类中成员属性注解
* position:开始播放的位置(位于audios中的index)
*/
MusicPlayerManager.getInstance().startPlayMusic(List> audios,int position);
```
**4.音乐歌词**
```
歌词解析及显示功能在>=1.0.7版本起提供支持,具体使用请参考唱片机类MusicJukeBoxView。(持续优化中)
iMuisc内置网络歌词解析仅支持酷狗音乐(搜索模块播放的歌曲)。
```
[播放器歌词]: https://github.com/Yuye584312311/iMusic/wiki/MusicPlayerWiki "音乐播放器API介绍"
具体使用和说明详见[播放器歌词]
**5.权限声明**
```
```
* Demo内置一套完整的UI交互播放器,请注册监听事件MusicPlayerManager.getInstance().addOnPlayerEventListener(this);并参照MusicPlayerActivity集成。
[代码混淆和自定义交互及其他功能]: https://github.com/Yuye584312311/iMusic/wiki/MusicPlayerWiki "音乐播放器API介绍"
**[代码混淆和自定义交互及其他功能]**
___
## 二.视频播放器集成:
**1.依赖**
```
dependencies {
implementation 'com.github.hty527.iMusic:video-player:1.2.0'
}
```
**2.xml中引入播放器通道布局**
```
//开启默认封面控制器
app:video_autoSetCoverController="true"
//开启默认视频交互控制器
app:video_autoSetVideoController="true"
```
[视频播放器Wiki介绍]: https://github.com/Yuye584312311/iMusic/wiki/VideoPlayerWiki "视频播放器API介绍"
你也可以在java代码中创建播放器,前往[视频播放器Wiki介绍]
**3.播放器初始化及基本数据设置**
```
mVideoPlayer = (VideoPlayerTrackView) findViewById(R.id.video_player);
//开始准备播放
mVideoPlayer.startPlayVideo(dataSource,title);
//第二种姿势准备播放
//mVideoPlayer.setDataSource(dataSource,title,);
//mVideoPlayer.startPlayVideo();
```
**4.Activity生命周期方法加入**
```
@Override
protected void onResume() {
super.onResume();
VideoPlayerManager.getInstance().onResume();
}
@Override
protected void onPause() {
super.onPause();
VideoPlayerManager.getInstance().onPause();
}
@Override
public void onBackPressed() {
//尝试弹射返回
if(VideoPlayerManager.getInstance().isBackPressed()){
super.onBackPressed();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
VideoPlayerManager.getInstance().onDestroy();
//如果你的Activity是MainActivity并且你开启过悬浮窗口播放器,则还需要对其释放
VideoWindowManager.getInstance().onDestroy();
}
```
**5.权限声明:**
```
```
**6.Activity Manifest文件配置:**
```
android:configChanges="orientation|screenSize">
```
[自定义交互和其他Wiki]: https://github.com/Yuye584312311/iMusic/wiki/VideoPlayerWiki "视频播放器API介绍"
至此基础的视频播放器项目集成完毕,更多高级功能和API请阅读[自定义交互和其他Wiki]
## iMusic预览及下载:
**强烈建议集成前先下载体验此APP,根据APP中的功能对照对应的API集成开发!!
**
#### 功能快照预览:
#### 下载地址:
* 本地[下载][1]
**或者扫描二维码下载
**
* 集成中遇到问题请阅读Wiki,BUG提交欢迎issues。如有其他问题,联系邮箱:584312311@qq.com