【问题标题】:How to: show playback controls by default for video_player plugin (flutter-web)如何:默认显示 video_player 插件的播放控件 (flutter-web)
【发布时间】:2020-05-29 16:14:09
【问题描述】:

有没有办法默认显示视频播放器的控件?如果我在浏览器中右键单击视频,我可以显示它们,所以我假设默认情况下必须有一种显示方式..

【问题讨论】:

    标签: flutter dart flutter-web


    【解决方案1】:

    我无法找到默认显示 video_player 控件的方法,但我使用了这个包,它适用于 Flutter-web:https://pub.dev/packages/chewie

    我很确定您还需要默认的 video_player 包...

    这是一个例子:

    import 'package:chewie/chewie.dart';
    import 'package:flutter/material.dart';
    import 'package:video_player/video_player.dart';
    
    class ChewieVideo extends StatefulWidget {
      // This will contain the URL/asset path which we want to play
      final VideoPlayerController videoPlayerController;
      final bool looping;
    
      ChewieVideo({
        @required this.videoPlayerController,
        this.looping,
        Key key,
      }) : super(key: key);
    
      @override
      _ChewieVideoState createState() => _ChewieVideoState();
    }
    
    class _ChewieVideoState extends State<ChewieVideo> {
      ChewieController _chewieController;
    
      @override
      void initState() {
        super.initState();
        // Wrapper on top of the videoPlayerController
    
        _chewieController = ChewieController(
          videoPlayerController: widget.videoPlayerController,
    
          // Prepare the video to be played and display the first frame
          autoInitialize: true,
          allowFullScreen: false,
          aspectRatio: 16 / 9,
          looping: widget.looping,
          autoPlay: false,
          showControlsOnInitialize: false,
          // Errors can occur for example when trying to play a video
          // from a non-existent URL
          errorBuilder: (context, errorMessage) {
            return Center(
              child: Text(
                errorMessage,
                style: TextStyle(color: Colors.white),
              ),
            );
          },
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return Padding(
          padding: const EdgeInsets.all(8.0),
          child: Chewie(
            controller: _chewieController,
          ),
        );
      }
    
      @override
      void dispose() {
        widget.videoPlayerController.dispose();
        _chewieController.dispose();
        super.dispose();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 2020-05-14
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2015-05-30
      • 1970-01-01
      • 2023-02-03
      相关资源
      最近更新 更多