Error: Ocorreu uma exceção. LateError (LateInitializationError: Field '_videoController@29114855' has not been initialized.) #189
Replies: 2 comments 2 replies
-
O erro se refere a você usar a variável Mova somente a inicialização de @override
void initState() {
...
_videoController = VideoPlayerController.asset(
'assets/bemvindo.mp4',
);
_initializeVideoPlayer();
}
void _initializeVideoPlayer() async {
await _videoController.initialize();
if (mounted) {
setState(() {}); // Atualiza o estado após a inicialização do vídeo
_videoController.play(); // Inicia a reprodução do vídeo após a inicialização
_videoController.setLooping(true); // Define a reprodução em loop
}
} |
Beta Was this translation helpful? Give feedback.
-
Você cometeu alguns erros:
Abaixo segue o código de import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
class BalancoContabilPage extends StatefulWidget {
const BalancoContabilPage({Key? key}) : super(key: key);
@override
State<BalancoContabilPage> createState() => _BalancoContabilPageState();
}
class _BalancoContabilPageState extends State<BalancoContabilPage>
with SingleTickerProviderStateMixin {
late TabController _tabController;
late List<Widget> _tabContents;
late VideoPlayerController _videoController;
int _selectedTabIndex = 0;
@override
void initState() {
super.initState();
_tabController = TabController(length: 3, vsync: this);
_tabController.addListener(_handleTabSelection);
_videoController = VideoPlayerController.asset(
'assets/bemvindo.mp4',
);
_initializeVideoPlayer();
}
Future<void> _initializeVideoPlayer() async {
await _videoController.initialize();
setState(() {}); // Atualiza o estado após a inicialização do vídeo
await _videoController
.play(); // Inicia a reprodução do vídeo após a inicialização
await _videoController.setLooping(true); // Define a reprodução em loop
}
Widget _buildVideoPlayerTab() {
if (_videoController.value.isInitialized) {
return Center(
child: AspectRatio(
aspectRatio: _videoController.value.aspectRatio,
child: VideoPlayer(_videoController),
),
);
} else {
return const Center(child: CircularProgressIndicator());
}
}
void _handleTabSelection() {
setState(() {
_selectedTabIndex = _tabController.index;
});
}
@override
void dispose() {
_tabController.dispose();
_videoController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
_tabContents = [
_buildVideoPlayerTab(),
const Center(child: Text('Conteúdo da Tab 2')),
const Center(child: Text('Conteúdo da Tab 3')),
];
return Scaffold(
appBar: AppBar(
title: const Text('Balanço Contábil'),
backgroundColor: Theme.of(context).appBarTheme.backgroundColor ??
const Color.fromRGBO(33, 150, 243, 1),
bottom: PreferredSize(
preferredSize: const Size.fromHeight(kToolbarHeight),
child: Container(
color: const Color.fromARGB(255, 244, 243, 243),
child: Center(
child: TabBar(
controller: _tabController,
isScrollable: false,
tabs: const [
Tab(
child: Text(
'Sinal',
textAlign: TextAlign.center,
),
),
Tab(
child: Text(
'Língua\nPortuguesa',
textAlign: TextAlign.center,
),
),
Tab(
child: Text(
'Visual',
textAlign: TextAlign.center,
),
),
],
labelStyle: const TextStyle(
fontSize: 18,
),
labelPadding: const EdgeInsets.symmetric(
horizontal: 15,
),
),
),
),
),
),
body: TabBarView(
controller: _tabController,
children: _tabContents,
),
);
}
}
|
Beta Was this translation helpful? Give feedback.
-
Não sei mais oque fazer, se alguém puder me auxiliar, estou enfrentando esse erro faz muito tempo, sou iniciante em dart e o erro é esse:
Error: Ocorreu uma exceção. LateError (LateInitializationError: Field '_videoController@29114855' has not been initialized.)
O erro ocorre aqui :
Eu esperava que o vídeo aparecesse e rodasse automaticamente na aba "Balanço Contabil ..", mas ele sempre chega nessa Exception.
Beta Was this translation helpful? Give feedback.
All reactions