播放器我稍微改造了下 想在列表页使用 但是好像无法结束上一个视频
来源:1-8 本章作业

EdisonR
2024-02-02
一个list中有很多简介视频 用这个videoview 不好做关闭啊
写回答
1回答
-
CrazyCodeBoy
2024-02-04
参考下:
class VideoList extends StatefulWidget {
@override
_VideoListState createState() => _VideoListState();
}
class _VideoListState extends State<VideoList> {
List<String> videoUrls = [
// Add your video URLs here
"https://example.com/video1.mp4",
"https://example.com/video2.mp4",
// Add more video URLs as needed
];
List<VideoPlayerController> videoControllers = [];
@override
void initState() {
super.initState();
// Initialize video controllers
videoControllers = videoUrls
.map((url) => VideoPlayerController.network(url))
.toList();
}
@override
void dispose() {
// Dispose of video controllers when the widget is disposed
for (var controller in videoControllers) {
controller.dispose();
}
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Video List'),
),
body: ListView.builder(
itemCount: videoUrls.length,
itemBuilder: (context, index) {
return VideoListItem(
videoPlayerController: videoControllers[index],
);
},
),
);
}
}
class VideoListItem extends StatefulWidget {
final VideoPlayerController videoPlayerController;
VideoListItem({required this.videoPlayerController});
@override
_VideoListItemState createState() => _VideoListItemState();
}
class _VideoListItemState extends State<VideoListItem> {
late ChewieController _chewieController;
@override
void initState() {
super.initState();
// Initialize ChewieController
_chewieController = ChewieController(
videoPlayerController: widget.videoPlayerController,
autoPlay: false,
looping: false,
);
}
@override
void dispose() {
// Dispose of ChewieController when the widget is disposed
_chewieController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Chewie(
controller: _chewieController,
),
],
);
}
}00
相似问题