загрузить 5 видео в одном списке на флаттер - PullRequest
1 голос
/ 25 апреля 2019

Я использую chewie плагин

У меня есть 5 видео в Интернете, и я хочу загрузить все 5 видео в списке, и при прокрутке списка, чтобы показать другое видео, сначала я хочуостановка последнего видео,

Другими словами, когда позиция просмотра списка изменяется, воспроизведение видео останавливается

Класс видео

import 'package:chewie/chewie.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:video_player/video_player.dart';

class VideoPleayre extends StatefulWidget {
  final String _videoUrl;
  VideoPleayre(this._videoUrl);
  @override
  State<StatefulWidget> createState() {
    return _VideoPleayreState();
  }
}

class _VideoPleayreState extends State<VideoPleayre> {
  VideoPlayerController _videoPlayerController;
  ChewieController _chewieController;
  @override
  void initState() {
    super.initState();
    _videoPlayerController = VideoPlayerController.network(widget._videoUrl);
    _chewieController = ChewieController(
      videoPlayerController: _videoPlayerController,
    );
  }

  @override
  void dispose() {
    _videoPlayerController.dispose();
    _chewieController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Chewie(
      controller: _chewieController,
    );
  }
}

Код основного класса

 Map<String,String> MySourceList = {
      "Address1",
      "Address2",
      "Address3",
    }

NotificationListener(
          child: ListView.builder(
              controller: _controller,
              itemCount: MySourceList.length,
              itemBuilder: (context, index){
                VideoPleayre(
                  MySourceList[index],
                )
              }
          ),
          onNotification: (t) {
            if (t is ScrollEndNotification) {
              setState(() {
              });
            }
          },
        );
...