Skip to content

v0.4.6

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Nov 14:50
· 1 commit to main since this release

快进之后也能接下一集,换集不再闪黑

0.4.4 把视频按文件夹顺序排起队,0.4.5 放宽了「算不算看完」的门槛,但两条判据都还依赖「实际停留了多久」。快进时几秒钟就跳到片尾,停留时间必然不够,于是队列在这里断掉——这正是「快进到下一集又退出了」。

  • 快进不再断连播:判据从「片长的一半」改成「片长的十分之一」,上限 2 分钟、下限 5.5 秒。快进后停留再短也能接上,长片也不会因为台机播放器提前结束(实测 63 秒的文件 45 秒就关)而断在门槛外
  • 换集时机更准:改用 startActivityForResult 的回调判断播放器关闭,比 onResume 早一步,也不会把系统弹窗、屏保这类插曲误当成「播放器退出」。onResume 保留作兜底,两条路径去重
  • 中间那帧纯黑删掉:从播放器退出到下一集开始只隔 300 毫秒,不再有黑底遮挡和「接下来:xxx」的字幕
  • 长片不再套用「离结尾不到 2 分钟」这条规则,它在台机上正好落在门槛之外

为什么小米自带的文件管理能无缝连播,这个应用做不到

小米文件和系统播放器同为系统签名应用(uid 1000),两者间有一套私有协议:文件管理点开视频时先把整个文件夹的列表写进自己的数据库,播放器播完一集就去 com.xiaomi.mitv.mediaexplorer.contentprovider 取下一集,连播放界面都不退出。这个数据库拒绝第三方访问(Permission Denial: ... not exported from uid 1000),本应用又不是系统签名,读不到也写不进,只能自己排队、一个文件一次地投给播放器。

所以「是否播完」只能靠停留时间推断:播放器不返回结果码、不发结束广播,它的 PlayStatusProvider 只有 path 和一个从头到尾都是 2 的 status。代价是——看了十几秒就按返回退出,可能会自动接下一集,再按一次返回即可停下。