Android 小部件实现播放视频

178 阅读1分钟

 最近在对小组件进行迭代, 之前已经解决过一些问题, 例如:

  • 图片的圆角怎么在小组件上展示并兼容多个系统版本
  • 小组件后台怎么更新,如何将小组件拆分成单独模块

对于小组件播放视频, 找不到直接可以调用的api, 因为android对于小组件又很多限制,比如:

RemoteViews 对象(因而应用微件)可以支持以下布局类:

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • GridLayout

以及以下微件类:

  • AnalogClock
  • Button
  • Chronometer
  • ImageButton
  • ImageView
  • ProgressBar
  • TextView
  • ViewFlipper
  • ListView
  • GridView
  • StackView
  • AdapterViewFlipper

不支持这些类的后代。

RemoteViews 还支持 ViewStub,它是一个大小为零的不可见视图,您可以使用它在运行时以懒散的方式扩充布局资源。

详细参考:

developer.android.com/guide/topic…

简单来说就是, 只支持特定的几种布局,不支持ConstraintLayout等, 不支持自定义view; 如果你使用了, 那么显示小组件时候就会出现类似 “载入小部件出错”的信息;

陌陌的一款贴贴实现了小组件播放视频, 经过一番吐血调研和研究, 我实现了类似的效果, 包括显示视频并缓存,显示图片, 小组件后台实时更新整理成了一套Demo;

​编辑

demo示例效果 

​编辑

方案已在线上验证,欢迎大佬们来找我探讨