如何在按下移动后退按钮时最小化 Full Screen Flutter Youtube Player?
How to minimize Full Screen Flutter Youtube Player on mobile back button press?
当 flutter 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 播放器。
我也遇到了和你一样的问题,当你点击全屏时,它变成了你提供的图片上的样子,但当我搜索时,我发现
一种将 youtube 播放器包装到 youtube 播放器 iframe 的方法。
然后在添加这个包后我可以自由全屏并回到原来的状态。
我是用YoutubePlayerBuilder
包裹YoutubePlayer
,如下:
return Container(
child: YoutubePlayerBuilder(
player: YoutubePlayer(
controller: _youtubePlayerController,
),
builder: (context, player) {
return Container(
child: player,
);
}),
);
当 flutter 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 播放器。
我也遇到了和你一样的问题,当你点击全屏时,它变成了你提供的图片上的样子,但当我搜索时,我发现 一种将 youtube 播放器包装到 youtube 播放器 iframe 的方法。
然后在添加这个包后我可以自由全屏并回到原来的状态。
我是用YoutubePlayerBuilder
包裹YoutubePlayer
,如下:
return Container(
child: YoutubePlayerBuilder(
player: YoutubePlayer(
controller: _youtubePlayerController,
),
builder: (context, player) {
return Container(
child: player,
);
}),
);