Как мне воспроизвести сетевое видео в flutter

#flutter #dart #flutter-video-player

#flutter #dart #flutter-видеопроигрыватель

Вопрос:

Я пытаюсь поместить сетевое видео с другого сайта в Flutter.

Я использовал пакет video_player. Я использовал future builder, в котором CircularProgressIndicator будет продолжаться до тех пор, пока видео не будет загружено. Когда я запускаю приложение, при запуске CircularProgressIndicator продолжайте работать, и через несколько секунд оно останавливается, как будто видео загружено, но в эмуляторе отображается полная пустота. Другими словами, видео не загружается.

После запуска приложения

введите описание изображения здесь

После загрузки

введите описание изображения здесь

Это код

 class MyHomePage extends StatefulWidget {
  @override
_MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  VideoPlayerController _controller;
  Future<void> _initializeVideoPlayerFuture;

  @override
  void initState() {
    _controller = VideoPlayerController.network(
        'https://ok.ru/videoembed/1616636152346');
    _initializeVideoPlayerFuture = _controller.initialize();
    _controller.setLooping(true);
    _controller.setVolume(1.0);
    super.initState();
  }


  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.blue,
      ),
      body: FutureBuilder(
        future: _initializeVideoPlayerFuture,
        builder: (context, snapshot){
          if(snapshot.connectionState == ConnectionState.done){
            return AspectRatio(
              aspectRatio: _controller.value.aspectRatio,
              child: VideoPlayer(_controller),
            );
          } else {
            return Center(
              child: CircularProgressIndicator(backgroundColor: Colors.blue,
              ),
            );
          }
        }
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: (){
          setState(() {
            if(_controller.value.isPlaying){
              _controller.pause();
            }else{
              _controller.play();
            }
          });
        },
        child: Icon(_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
      ),
    ),
    );
  }
}
  

Комментарии:

1. Ваша ссылка предназначена для веб-страницы, а не для видеофайла. Убедитесь, что вы используете ссылку на видеофайл MP4, чтобы получить рабочий результат. Пример: techslides.com/demos/sample-videos/small.mp4

Ответ №1:

Ваша ссылка на видео не является действительной ссылкой на видео, это URL для встраивания.

Для воспроизведения видео с сетевого URL используйте прямой URL видео, напримерhttps://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4.

Поместите эту ссылку в свой видеоконтроллер, он будет работать нормально.

Комментарии:

1. Моя ссылка на видео не работает 143.244.137.15:8000/media /event /org_event_video / Нет /…

2. ваша ссылка на видео показывает ошибку: этот сайт недоступен, пожалуйста, проверьте и добавьте действительный URL-адрес видео.

3. Пожалуйста, попробуйте еще раз.

4. все еще отображается ошибка.