1

当颤动的 youtube 播放器全屏时,我按下手机的后退按钮,我想最小化 youtube 播放器,我该怎么做?

我的 Flutter Youtube Player 代码如下。

class _VideoPlayerState extends State<VideoPlayer> {
  late YoutubePlayerController _youtubePlayerController;
  late bool _isPlayerReady;

  @override
  void initState() {
    super.initState();
    _isPlayerReady = false;
    var url = widget.video.url;
    var videoUrl = YoutubePlayer.convertUrlToId(url!);
    _youtubePlayerController = YoutubePlayerController(
      initialVideoId: videoUrl!,
      flags: YoutubePlayerFlags(
        autoPlay: false,
        mute: false,
        disableDragSeek: false,
        loop: false,
        isLive: false,
        forceHD: false,
        hideControls: false,
      ),
    )..addListener(_listener);
  }

  void _listener() {
    if (_isPlayerReady &&
        mounted &&
        !_youtubePlayerController.value.isFullScreen) {}
  }

  @override
  void dispose() {
    _youtubePlayerController.dispose();
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.portraitDown,
      DeviceOrientation.landscapeLeft,
      DeviceOrientation.landscapeRight,
    ]);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: YoutubePlayer(
        controller: _youtubePlayerController,
        aspectRatio: 16 / 9,
        showVideoProgressIndicator: true,
        onReady: () {
          _isPlayerReady = true;
        },
      ),
    );
  }
}

但是当我按下返回按钮时,我的应用程序屏幕如下所示。 在此处输入图像描述

所以在这里我想在按下后退按钮时最小化 youtube 播放器。

首先我的应用程序方向为纵向,然后我全屏播放视频,然后按下返回按钮,我的应用程序方向为横向。

所以我想在按下后退按钮时最小化 youtube 播放器。

4

2 回答 2

0

I did it by wrapping YoutubePlayer with YoutubePlayerBuilder, as below:

return Container(
      child: YoutubePlayerBuilder(
          player: YoutubePlayer(
            controller: _youtubePlayerController,
          ),
          builder: (context, player) {
            return Container(
              child: player,
            );
          }),
    );
于 2021-09-16T12:40:00.670 回答
0

我,也有和你一样的问题,当点击全屏时,它就像你提供的图片一样,但是当我搜索时,我找到了一种将 youtube 播放器包装到 youtube 播放器 iframe 的方法。

然后在添加这个包后,我可以自由地全屏并恢复到原来的样子。

https://pub.dev/packages/youtube_player_iframe

于 2021-09-16T10:38:45.907 回答