You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi开发安卓应用如何在息屏或切后台时静音/停止运行的视频

Delphi安卓应用息屏/后台运行视频音频暂停解决方案

1 检测应用切换至后台事件

Delphi自带应用生命周期事件监听能力,直接通过以下方式实现:

  • 在主窗体中添加TApplicationEvents组件
  • 绑定组件的OnEnterBackground事件,该事件会在应用被切到后台(用户切换其他应用、返回系统桌面)时自动触发
  • 如需实现切回应用恢复播放的逻辑,可以绑定OnEnterForeground事件做对应处理

2 检测设备息屏事件

息屏属于安卓系统级事件,需要通过注册系统广播接收器实现监听:

  • 先引入以下依赖单元:
    Androidapi.JNI.Embarcadero, Androidapi.JNI.GraphicsContentViewText, 
    Androidapi.Helpers, Androidapi.JNI.JavaTypes
    
  • 自定义广播接收器,监听安卓系统的ACTION_SCREEN_OFF(息屏)、ACTION_SCREEN_ON(亮屏)广播动作,示例注册代码如下:
    var
      Filter: JIntentFilter;
    begin
      Filter := TJIntentFilter.Create;
      Filter.addAction(TJIntent.JavaClass.ACTION_SCREEN_OFF);
      Filter.addAction(TJIntent.JavaClass.ACTION_SCREEN_ON);
      TAndroidHelper.Context.registerReceiver(你的广播接收器实例, Filter);
    end;
    
  • 无需额外申请特殊权限即可正常接收上述两个广播

3 视频播放处理逻辑

  • 在OnEnterBackground事件、ACTION_SCREEN_OFF广播触发时,先判断当前视频播放器是否处于播放状态,是则调用暂停播放接口,停止音频输出
  • 可同步记录当前播放进度,在用户切回应用、且同时收到ACTION_SCREEN_ON+OnEnterForeground事件后,根据产品逻辑选择自动恢复播放或者提示用户手动恢复

内容的提问来源于stack exchange,提问作者Olaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:54:07