播放器我稍微改造了下 想在列表页使用 但是好像无法结束上一个视频

来源: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,
        ),
      ],
    );
  }
}
0
0

Flutter高级进阶实战-仿哔哩哔哩-掌握Flutter高阶技能

一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案

1723 学习 · 870 问题

查看课程