使用 youtube_player_flutter 时无限加载

Infinite loading when using youtube_player_flutter

我正在使用 youtube_player_flutter 并按照自述文件中的描述正确实施了所有内容。

但我仍然面临一个问题,即每当我打开我希望打开 YouTube 播放器的页面时,它一直在加载,而从不加载视频。

我到处搜索这个问题,但没有找到任何解决方案。其中一个解决方案是在 AndroidManifest.xml:

中包含互联网许可
<uses-permission android:name="android.permission.INTERNET"/>

我这样做了,没有任何改变。我也将软件包降级到 v6.1.1,有人要求我在 github issue 中执行此操作,但那也没有任何作用。

我该如何解决这个问题?

我正在回答我自己的问题,因为我在搜索此问题时没有找到任何可以解决此问题的方法。

所以,我尝试 define the controller in initState() 并且成功了,现在是 working in v7.0.0+7。这是我的代码:

class AboutTopic extends StatefulWidget {
  final String videoLink;

  AboutTopic({this.videoLink});

  @override
  _AboutTopicState createState() => _AboutTopicState();
}

class _AboutTopicState extends State<AboutTopic> {
  YoutubePlayerController _controller;

  @override
  void initState() {
     _controller = YoutubePlayerController(
      initialVideoId:
          YoutubePlayer.convertUrlToId(widget.videoLink),
      flags: YoutubePlayerFlags(
          mute: false,
          autoPlay: true,
          disableDragSeek: true,
          loop: false,
          enableCaption: false),
    );

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
       appBar: AppBar(
        title: Text('About'),
        centerTitle: true,
        leading: IconButton(
          icon: Icon(Icons.arrow_back),
          onPressed: () {
            Navigator.of(context).pop();
          },
        )
      ),

      body: YoutubePlayer(
        controller: _controller,
        showVideoProgressIndicator: true,
        bottomActions: <Widget>[
          const SizedBox(width: 14.0),
          CurrentPosition(),
          const SizedBox(width: 8.0),
          ProgressBar(isExpanded: true),
          RemainingDuration(),
        ],
        aspectRatio: 4 / 3,
        progressIndicatorColor: Colors.white,
        onReady: () {
          print('Player is ready.');
        },
      ),
    );
  }
}