网易云音乐产品系统

我要开发同款
cmz2026年11月02日
4阅读

技术信息

语言技术
Android、Kotlin
系统类型
车载应用、Android应用
行业分类
音视频多媒体、汽车

作品详情

行业场景

与网易合作的车载音乐播放软件,按照网易规范开发的车载网易云App,旨在打造一款能将网易云音乐运行在车机屏上的音乐软件供车主选择

功能介绍

功能模块{
首页,登录,本地音乐,全屏播放页歌词,胶片播放动画,播放背景渲染,音质音效设置,打开即播,桌面歌词,状态栏歌词
}
主要功能{
播放音频,播客
}

项目实现

架构搭建使用到的技术{
1.baseactivity和basefragment定义为泛型类,泛型上界指定为Viewbinding,然后通过定义抽象方法供子类实现具体binding生成
其中basefragment中有定义checkFirstLoad()方法解决屏幕旋转重新发起请求的问题

2.各模块viewmodel主构造函数中定义成员变量为对应的仓库,通过依赖注入库koin完成初始化任务,仓库层同理,需要在各仓库主构造函数中加入对应的api接口作为成员变量
3.仓库层通过kt文件中定义共用的网络请求通用函数
}


播放页功能使用到的技术{
1.加载歌词使用LyricViewX控件,通过flow收集歌曲进度,然后使用updateTime函数更新当前歌词位置
2.胶片和拨片动画,通过objectanimal创建旋转动画,附加匀速插值器使其匀速播放
3.通过调色板Palette配置播放页背景色,首先通过Glide中into函数匿名对象重写onResourceReady方法,在此回调中拿到bitmap对象,因为palette操作的是bitmap对象
另外,之所以在这里使用bitmap,是因为要注意渲染时机,在资源真正准备好后再去处理是最合适的,然后使用
//返回调色板中最鲜艳的样品
val lightVibrantSwatch = palette.vibrantSwatch
//通过lightVibrant的Swatch样品拿到hsv颜色向量数组值
swatch.hsl
//然后分别获取色相值,饱和度,亮度

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论