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

Flutter Web中webOnlyAssetManager与platformViewRegistry弃用问题求助

问题:Flutter Web中视频播放组件引发弃用API提示

背景

我正在开发一款Flutter Web应用,使用cached_video_player包实现视频播放功能,核心组件代码如下:

import 'package:cached_video_player/cached_video_player.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:samsung_site_ui/my_provider.dart';

class MyVideoPlayer extends StatefulWidget {
  final String videoPath;
  const MyVideoPlayer({
    Key key,
    required this.videoPath,
  });

  @override
  State<MyVideoPlayer> createState() => _MyVideoPlayerState();
}

class _MyVideoPlayerState extends State<MyVideoPlayer> {
  late CachedVideoPlayerController _cachedVideoPlayerController;

  @override
  void initState() {
    _cachedVideoPlayerController =
        CachedVideoPlayerController.asset(widget.videoPath)
          ..initialize().then(
            (value) {
              setState(() {});
            },
          );
    super.initState();
  }

  @override
  void dispose() {
    _cachedVideoPlayerController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Consumer<MyProvider>(
      builder: (context, provider, _) {
        // rest of the code
      },
    );
  }
}

问题现象

当组件加载到组件树中时,Chrome调试控制台出现以下弃用提示:

The webOnlyAssetManager getter is deprecated and will be removed in a future release. Please use `assetManager` from `dart:ui_web` instead.
The platformViewRegistry getter is deprecated and will be removed in a future release. Please import it from `dart:ui_web` instead.

当前依赖列表

dependencies:
  cached_network_image: ^3.4.0
  cached_video_player: ^2.0.4
  flutter:
    sdk: flutter
  gap: ^3.0.1
  google_fonts: ^6.2.1
  provider: ^6.1.2

应用功能正常,但希望消除这些弃用提示,避免使用webOnlyAssetManager和platformViewRegistry。


解决方案

1. 升级cached_video_player至最新稳定版

问题根源在于当前使用的cached_video_player: ^2.0.4依赖的web端视频播放实现(video_player_web)版本较旧,仍在调用已弃用的API。将其升级到最新兼容版本即可解决:
修改pubspec.yaml中的依赖版本:

cached_video_player: ^2.0.8  # 或pub.dev上的最新稳定版

2. 手动指定video_player_web版本(可选)

若升级cached_video_player后仍存在提示,可直接指定其依赖的video_player_web为最新版本,强制覆盖旧版本:
在pubspec.yaml中添加:

dependency_overrides:
  video_player_web: ^2.0.16  # 替换为当前最新稳定版

3. 清理缓存并重新获取依赖

执行以下命令确保依赖更新生效:

flutter clean
flutter pub get

4. 验证结果

重新运行Flutter Web应用,检查Chrome控制台是否还存在弃用提示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:26:01