flutter - Chewie 视频播放器:未处理的异常:错误状态:未来已经完成
问题描述
播放视频时,我只在 iPhone 中遇到错误。但在 Android 中它可以完美运行。
`+0200 Runner[326:18470] [VERBOSE-2:ui_dart_state.cc(199)] 未处理的异常:错误状态:Future 已经完成 #0 _AsyncCompleter.complete (dart:async/future_impl.dart:45:31) #1 VideoPlayerController.initialize (包:video_player/video_player.dart:310:25)
child: GestureDetector(
onTap: () async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (_) => VideoPlayerScreen(att)));
},
class _VideoPlayerScreenState extends State<VideoPlayerScreen> {
final Attachment attachment;
_VideoPlayerScreenState(this.attachment);
VideoPlayerController _controller;
ChewieController chewieController;
Future<void> futureController;
@override
void initState() {
_controller = Service().getAttachmentVideo(attachment.id);
futureController = _controller.initialize();
chewieController = ChewieController(
videoPlayerController: _controller,
autoPlay: true,
looping: false,
showControlsOnInitialize: false);
super.initState();
}
@override
void dispose() {
// Ensure disposing of the VideoPlayerController to free up resources.
chewieController.dispose();
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder(
future: futureController,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
// If the VideoPlayerController has finished initialization, use
// the data it provides to limit the aspect ratio of the video.
final Size size = _controller.value.size;
return Chewie(
controller: chewieController,
);
} else {
// If the VideoPlayerController is still initializing, show a
// loading spinner.
return Center(child: CircularProgressIndicator());
}
},
),
);
}
}
解决方案
推荐阅读
- optimization - 使用 GEKKO 对大量变量、边界和约束进行优化
- java - firestore 快照监听器的生命周期和定价之间有什么关系?
- spring - 连接到 Okta 时在 Webclient 上获取 readAddress() 异常
- javascript - 即使使用了 escapeCharacter 函数,RegExp 值仍然不能与 .match 一起使用
- flutter - 是否可以将原生 sdks 添加到 Flutter 应用程序并在 Flutter 应用程序和原生 SDK 之间架起一座桥梁?
- javascript - 使用 Socket.io 的 Websocket 连接中出现无法解释的延迟,页面加载后正好 10 秒
- python - TensorFlow 的线程
- php - bootstrap 4的折叠导航栏
- python - 在 Python 和 Plotly 中更改地图 Choroplethmapbox 上的值的菜单或按钮
- google-bigquery - 将 BQ 模式更改部署到 QA 和生产项目