【发布时间】:2020-05-14 21:51:03
【问题描述】:
有人知道我需要做什么才能在我的颤振网站加载后自动播放我的视频吗?
到目前为止,我唯一能做的就是让它们在我手动刷新页面时播放/循环播放。
我确信这很简单,但是在完全不编码 3 个月后,我有点生疏了......
目前我在FutureBuilder 内调用_videoPlayerController.play()
class VideoWithChild extends StatefulWidget {
final String videoSource;
final FractionalOffset alignment;
final TextAlign textAlign;
final Widget child;
const VideoWithChild(
{Key key, this.videoSource, this.alignment, this.textAlign, this.child})
: super(key: key);
@override
_VideoWithChildState createState() =>
_VideoWithChildState(videoSource, alignment, textAlign, child);
}
class _VideoWithChildState extends State<VideoWithChild> {
final String videoSource;
final TextAlign textAlign;
final Widget child;
final FractionalOffset alignment;
VideoPlayerController _videoPlayerController;
Future<void> _initializeVideoPlayerFuture;
VoidCallback listener;
_VideoWithChildState(
this.videoSource, this.alignment, this.textAlign, this.child);
@override
void initState() {
_videoPlayerController = VideoPlayerController.asset(videoSource);
_initializeVideoPlayerFuture = _videoPlayerController.initialize();
super.initState();
}
@override
Widget build(BuildContext context) {
print('build');
return FutureBuilder(
future: _initializeVideoPlayerFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done &&
_videoPlayerController.dataSource.isNotEmpty) {
print('connection state');
_videoPlayerController.play();
_videoPlayerController.setLooping(true);
return AspectRatio(
aspectRatio: _videoPlayerController.value.aspectRatio,
child: Stack(
children: <Widget>[
VideoPlayer(_videoPlayerController),
LayoutBuilder(
builder: (context, constraints) {
return Align(alignment: alignment, child: child);
},
)
],
),
);
} else {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Center(
child: CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(
Color(0xff49148c),
),
)),
);
}
},
);
}
@override
void dispose() {
print('dispose');
super.dispose();
_videoPlayerController.dispose();
}
}
【问题讨论】:
标签: flutter dart flutter-web