SiliSili

Rating: 
5
Your rating: None Average: 5 (1 vote)

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。

Screenshots: 
Application versions: 
AttachmentSizeDate
File silisili-native-devel-1.1.0-1.23.aarch64.rpm9.93 MB09/08/2026 - 22:48
File silisili-native-devel-1.1.0-1.24.aarch64.rpm9.94 MB10/08/2026 - 00:51
Changelog: 

SiliSili Native 1.1.0-1.24

Changes:

  • Keep droidmedia frame callbacks nonblocking by dropping an excess incoming
    output under GUI pressure, preventing Binder transaction buildup from
    freezing video while the separate audio clock continues. Retain consecutive
    queued frames and move queue-sized sliding backpressure to the private demux
    thread so OMX cannot burst past the display queue or lose source cadence.
  • Detect a stopped hardware frame serial while audio advances and restart only
    the same-quality video decoder at the retained clock position; keep the
    audio load, shared texture, controls and media-load serial intact.

SiliSili Native 1.1.0-1.23

Changes:

  • Bound compressed droidmedia input to 1.5 seconds ahead of the audio clock so
    asynchronous OMX adaptations cannot queue an entire long video, exhaust CMA
    and leave the player stuck in loading.
  • Reconcile the internal hardware-to-software load serial, retain pause/seek
    intent during a quality transition, and keep transport controls interactive
    beneath a passive loading indicator.
  • Keep the 1200 ms first-frame safety deadline for verified UHD opt-in while
    allowing ordinary 1080P hardware startup 3500 ms before software fallback.