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
相关产品推荐
相关产品推荐

