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

使用video_player跳转页面后音频仍播放的问题求助

问题分析与解决方案

你的问题核心是:通过弹窗跳转页面时,原页面的视频播放器资源没被正确释放——直接返回时页面会触发销毁生命周期,自动执行播放器的dispose;但弹窗跳转时原页面还保留在路由栈中,不会触发页面的dispose,导致播放器持续运行发声。

给你几个可行的解决办法:

  • 在弹窗的跳转按钮点击事件里,主动调用播放器的暂停和释放方法。比如你封装的播放器类可以暴露一个stopAndDispose()方法,示例代码如下:

    void stopAndDispose() {
      if (_controller != null) {
        _controller.pause();
        _controller.dispose();
      }
    }
    

    然后在弹窗确认跳转时,先调用这个方法,再执行Navigator.push()之类的跳转逻辑。

  • 如果用WillPopScope拦截返回键弹出弹窗,不要只依赖页面的dispose()来释放播放器。因为弹窗跳转后原页面未被销毁,dispose()不会触发,必须手动触发资源释放。

  • 若业务允许,可改用Navigator.pushReplacement()替换路由,这种方式会销毁原页面,触发dispose生命周期,自然能释放播放器资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:11:09