当前位置: 首页 > article >正文

FLutter 开发中 fijkplayer设置屏幕常亮

FLutter 视频播放:

`

目前在做FLutter种的视频播放功能,遇到了视频播放的时候,屏幕突然黑屏了。网上找了很多,无论是设置在原生的Activity界面,添加如下代码,

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  

还是在xml中设置

    android:keepScreenOn="true"

都无效。甚至在Fragment中的onCreateView方法中加入代码,

        Activity activity = getActivity();
        if (activity != null) {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
            activity.setTurnScreenOn(true);
        }

又或者,在任意一个View中加入如下代码,

mView.setKeepScreenOn(true);

都无效。
后来在FLutter种加入wakelock 插件

  wakelock: ^0.6.2

在 initState 调用

Wakelock.enable();

在 dispose 调用

Wakelock.disable();

也无效。
其实,仔细查看Wakelock插件的源代码,发下这个插件保持屏幕常亮的方法,也是调用

Activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  

Activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  

原因分析:

以上的处理,都不是fijkplayer当前的View,所以不起作用。


解决方案:

查看fijkplayer的FLutter源代码以及原生的源代码发现,有一个叫做 FijkPlugin 的插件类,里面支持 有一个 setScreenOn 的方法,支持屏幕常亮。但是FijkPlayer的方法里面没有,这个时候,我们调用 FijkPlugin 的方法,接着就屏幕常亮了`。

    FijkPlugin.keepScreenOn( true ) ;

记得在dispose方法中调用

    FijkPlugin.keepScreenOn( false ) ;

完毕!


http://www.kler.cn/a/37903.html

相关文章:

  • Android 内存泄漏的常见原因及其对应的解决方案
  • 提示“无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动”,如何解决?
  • 算法学习day24
  • 实验四(双向重发布)7 14
  • Java线程状态
  • 基于flask框架的用户注册页面实例
  • STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061
  • 【python opencv】如何获取一个图片区域的亮度
  • 安装fastDFS
  • 面试题更新之-hook中setState原理
  • K8S的部署项目流程
  • 〖码银送书第三期〗《Python机器学习:基于PyTorch和Scikit-Learn》
  • 基于MATLAB环境下的子空间聚类算法:理解和实践
  • android 下载源码 一路踩坑
  • k8s创建es和kibana
  • 【NOSQL】redis哨兵模式、集群搭建
  • 天池大赛中药说明书实体识别挑战冠军方案开源(二)部署运行实战 附详细操作说明
  • 从小白到大神之路之学习运维第58天--------Firewalld防火墙
  • RabbitMQ ---- 延迟队列
  • MyBatis入门案列