使用 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.');
},
),
);
}
}
我正在使用 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.');
},
),
);
}
}