仅在全屏上显示视频控件

问题描述

我使用 chewie (0.12.0) 包是为了使用 video_player 插件内置视频控件。这是我的简单实现:

class MyVideoPlayer extends StatefulWidget {
  /// Default true,it decides if video can start automatically when created
  final bool automaticStart;

  /// Video url
  final String url;

  /// Enable full screen feature on tap
  final bool fullScreenOnTap;

  const MyVideoPlayer(
      {@required this.url,this.automaticStart = true,this.fullScreenOnTap = true});

  @override
  _ MyVideoPlayerState createState() => _ MyVideoPlayerState();
}

class MyVideoPlayerState extends State<MyVideoPlayer> {
  VideoPlayerController _videoController;
  ChewieController _chewieController;

  @override
  void initState() {
    super.initState();

    initalizeControllers();
  }

  void initalizeControllers() async {
    _videoController = VideoPlayerController.network(widget.url);

    await _videoController.initialize();

    setState(() {});

    _chewieController = ChewieController(
        videoPlayerController: _videoController,autoPlay: true,looping: true,showControlsOnInitialize: false,showControls: false,)
      ..setVolume(0);
  }

  @override
  Widget build(BuildContext context) {
    return _videoController.value.initialized
        ? GestureDetector(
            onTap: () {
              if (!widget.fullScreenOnTap) return;

              _chewieController.enterFullScreen();
              
              //TODO: enable video controls after full screen
            },child: Chewie(
              controller: _chewieController,),)
        : MyLoader();
  }

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

通常我会向用户展示一些类似于嵌入在轮播滑块上的预览(不需要视频控件),然后当点击视频时,GestureDetector 提供使用控制器将其移动到全屏(需要视频控件)。>

如何实现仅在用户使用全屏模式时显示视频控件的可能性?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)