NeriPlayer 中文文档 下载 App

GLSL RuntimeShader 实现的播放页音频响应式流体背景

实现方式

播放页的动态背景由 BgEffectPainter 加载 assets/shaders/hyper_background_effect.glsl 并通过 Android RuntimeShader 逐帧渲染。

着色器逻辑

hyper_background_effect.glsl 内部:

不是简单把封面做高斯模糊——封面模糊是独立降级路径,流体背景是独立的 GLSL 渲染。

Android 版本限制

效果最低 Android 版本
RuntimeShader 流体背景Android 13 (API 33)
封面模糊Android 12 (API 31)
进阶高级模糊Android 13 (API 33)
高级模糊质量调节Android 13 (API 33) + 父级模糊开启

低版本系统会自动降级到封面模糊或纯色背景,不会崩溃。

封面取色的主题联动

封面取色不仅驱动播放页背景——整个应用的主题种子色也可以从当前播放歌曲的封面自动提取,并随切歌实时更新。取色使用 Android Palette 库,经过 HSL 转换调整对比度和饱和度后写入主题系统。

封面大图预览

播放页长按封面可以打开沉浸式大图预览,支持双指缩放、拖动和下载封面图片。