У меня есть виджет PageView
, и я хочу воспроизвести видео на YouTube на указанной странице c, и при прокрутке страницы должно начаться видео.
Для этого я использую youtube_player_flutter
package.
ошибка:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create an already created platform view, view id: 2
Иногда это работает, когда я перезагружаю виджет игрока, но большую часть времени я получаю эту ошибку.
код: -
class VideoPlayer extends StatefulWidget {
@override
_VideoPlayerState createState() => _VideoPlayerState();
}
class _VideoPlayerState extends State<VideoPlayer> {
YoutubePlayerController _controller;
bool _isPlayerReady = false;
@override
void initState() {
super.initState();
this._controller = YoutubePlayerController(
initialVideoId: 'lgkZC_Ss6YE',
flags: YoutubePlayerFlags(
mute: false,
autoPlay: true,
disableDragSeek: true,
loop: false,
isLive: false,
forceHideAnnotation: true,
forceHD: false,
enableCaption: true,
),
)..addListener(_videoPlayerListner);
}
void _videoPlayerListner() {
print(_controller.value.playerState.toString());
}
@override
void deactivate() {
_controller.pause();
super.deactivate();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
progressIndicatorColor: Colors.blueAccent,
topActions: <Widget>[
SizedBox(width: 8.0),
Expanded(
child: Text(
_controller.metadata.title,
style: TextStyle(
color: Colors.white,
fontSize: 18.0,
),
overflow: TextOverflow.ellipsis,
maxLines: 1,
),
),
],
onReady: () {
_isPlayerReady = true;
},
onEnded: (data) {},
);
}
}
Что мне здесь не хватает?