silisili
为 Sailfish OS 重新实现的原生哔哩哔哩客户端,采用 AI 辅助编程,基于大量现有开源项目。
silisili 使用 Qt Quick、Sailfish Silica 和原生 C++ 数据模型重新实现手机端界面与播放链路。当前原生版不再是把电视端 UI 缩放到手机屏幕:页面栈、菜单、对话框、Cover、横竖屏布局、触控手势和后台呈现均按 Sailfish OS 的交互方式设计。
当前原生包仍是开发版本,并非哔哩哔哩官方客户端。接口、清晰度和账号内容会受到登录状态、账号权益、地区与上游服务变化影响。
项目
github:https://github.com/ZeroX-S/silisili/tree/native-pip-overlay
主要功能
浏览与账户
- 首页推荐、分区排行、番剧/影视、直播列表与连续分页。
- 视频关键词、标题和 UP 主搜索,支持搜索历史与结果分页。
- 将视频动态与图文、专栏、转发等非视频动态分开浏览,并可打开动态正文。
- UP 主空间、头像、投稿和动态;图片请求带正确的来源信息并使用有界缓存,降低头像首次加载失败的概率。
- 二维码登录。Sailfish OS 5.2+ 运行时优先使用 Amber.Barcode 1.0,5.1 优先使用 QrShareImage 1.0,组件不可用时自动尝试另一实现。
- 二维码不会因轮询状态自行刷新;只有用户主动刷新或二维码 URL 确实改变时才重建。
- 历史记录、收藏夹、订阅合集、追番、追剧和稍后再看。
- 从历史记录进入视频时恢复到已记录位置,播放过程中持续上报进度。
- 主评论、回复楼层、发布评论、回复、点赞与取消点赞。
视频、番剧与直播
- 普通视频、番剧/影视、直播和多 P 视频;当前分 P 播放完成后自动续播下一 P。
- 展示接口实际返回的全部清晰度档位,并按选择的精确 qn 请求 DASH 媒体;清晰度面板可滑动,不会因切换到低清后丢失高画质选项。
- 画质标签来自实际解析结果。1080P、1080P+ 和高帧率档位仍取决于账号权益及服务端是否返回对应视频轨道。
- 弹幕分段加载、透明度、字号、速度和安全轨道布局。
- 播放/暂停、精确跳转、倍速、音量、亮度、进度条与当前/总时长同步。
- 横竖屏与全屏自适应,保持视频原始比例,不把横屏直播或后续视频过度拉伸。
- 一个进程级播放会话在详情页、全屏、应用内小窗、Cover 与系统小窗之间复用,切换界面时不重新加载或隐藏定位。
Sailfish OS 集成
- 使用 ApplicationWindow、PageStack、SilicaListView、PullDownMenu、ContextMenu 和原生 Dialog。
- 支持 Sailfish 边缘返回、Maliit 输入法、设备方向传感器和前台播放保持亮屏。
- 后台显示可在“Cover 播放”和“系统小窗播放”之间配置,两种模式不会同时绘制。
- Cover 在播放时显示实时视频画面;未播放时显示轻量的品牌斜纹背景和状态信息。
- 系统小窗使用 Lipstick notification 表面:可拖动、记忆位置、跟随设备方向,点按返回播放页;视频之外的透明区域保持点击穿透。
- 锁屏、熄屏、停止播放或自然播放完成时自动隐藏系统小窗;关闭按钮停止播放并保留足够的触控区域。
兼容性
当前 RPM 仅面向 AArch64 Sailfish OS 设备。
环境当前状态Sailfish OS 5.0.0.62 SDK原生包的最低编译、依赖与 ABI 基线;尚未声明 5.0 真机完整验证Pixel 3a XL / Sailfish OS 5.1.0.11当前完整实机开发和回归环境Sailfish OS 5.2已实现 Amber.Barcode/QrShareImage 运行时兼容;完整设备回归仍需按具体机型执行
硬件解码依赖设备提供可用的 Android 媒体栈、droidmedia 与 libhybris EGL/GLES;硬解条件不满足时由播放器使用软件解码兼容路径。系统 PiP 另行依赖 Lipstick notification 表面和软件包声明的权限,不可用时应选择 Cover。
Recent comments