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

Flutter Pod Player异常:拖动进度条后音频失真、视频卡顿

问题解决思路

1. 优化监听函数,减少不必要的UI重绘

你的_listner函数每次都会触发setState,哪怕播放状态没有变化,这会导致UI频繁重绘,加重跳转时的性能负担。修改监听逻辑,只在播放状态确实改变时才更新状态:

void _listner() {
  final newPlayingState = controller.isVideoPlaying;
  if (newPlayingState != isVideoPlaying) {
    isVideoPlaying = newPlayingState;
    if (mounted) setState(() {});
  }
}

2. 移除互斥的视频比例属性

matchFrameAspectRatioToVideo和matchVideoAspectRatioToFrame是互斥属性,同时设为true会导致布局计算冲突,影响播放流畅度。根据需求保留其中一个即可,比如保留matchVideoAspectRatioToFrame:

PodVideoPlayer(
  alwaysShowProgressBar: alwaysShowProgressBar,
  controller: controller,
  matchVideoAspectRatioToFrame: true,
  videoTitle: videoTitle,
),

3. 调整控制器初始化顺序

确保控制器初始化完成后再添加监听,避免监听触发时机异常:

@override
void initState() {
  super.initState();
  controller = PodPlayerController(
    playVideoFrom: PlayVideoFrom.youtube('https://youtu.be/TBTgQbjRsqg'),
  );
  controller.initialise().then((value) {
    setState(() {
      isVideoPlaying = controller.isVideoPlaying;
    });
    controller.addListener(_listner);
  });
}

4. 额外排查方向

如果以上修改后问题仍存在,可以尝试:

  • 检查PodPlayer库是否为最新版本,更新到最新版修复已知的播放跳转bug
  • 测试不同的YouTube视频链接,排除视频源本身的问题
  • 确保设备有足够的内存和网络带宽,跳转时需要重新缓冲视频片段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:19:53