Flutter media_kit:视频暂停时始终显示播放按钮或“primaryButtonBar”?

问题描述 投票:0回答:1

我正在使用 media_kit 包来显示视频。现在,在没有鼠标移动指定

controlsHoverDuration
的地方,控件是隐藏的。作为解决方法,我可以将
controlsHoverDuration
设置为较长的持续时间。

MaterialVideoControlsTheme(
  normal: const MaterialVideoControlsThemeData(
    visibleOnMount: true,
    controlsHoverDuration: Duration(hours: 1) // Setting this value to a duration
  ),
  fullscreen: const MaterialVideoControlsThemeData(),
  child: Scaffold(
    body: Video(
      controller: controller,
    ),
  ),
);

但是当我点击视频时会隐藏控件。

另一种方法是构建自定义视频控件。

Scaffold(
  body: Video(
    controller: _controller,
    controls: (state) {
      return Center(
        child: IconButton(
          onPressed: () {
            state.widget.controller.player.playOrPause();
          },
          icon: StreamBuilder(
            stream: state.widget.controller.player.stream.playing,
            builder: (context, playing) => Icon(
              playing.data == true ? Icons.pause : Icons.play_arrow,
            ),
          ),
        ),
      );
    },
  ),
);

但这需要实现所有状态的简单要求。我也想坚持

MaterialVideoControlsTheme

有没有办法在视频处于暂停状态时使用

primaryButtonBar
始终显示播放按钮或
MaterialVideoControlsTheme

flutter flutter-dependencies
1个回答
0
投票

我也有同样的需求来显示控件而不隐藏它。 您可以使用材质小部件创建自定义控件,例如您可以使用的播放或暂停

MaterialPlayOrPauseButton()

使用材质小部件的完整示例

SizedBox(
  height: 300,
  child: Video(
    controller: controller,
    controls: (state) {
      return const Column(
        children: [
          MaterialPlayOrPauseButton(),
          MaterialSeekBar(),
        ],
      );
    },
  ),
);
© www.soinside.com 2019 - 2024. All rights reserved.