Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何让视频在不拉伸的情况下充满屏幕(使用丘伊或类似工具)?_Flutter_Video_Dart_Exoplayer - Fatal编程技术网

Flutter 如何让视频在不拉伸的情况下充满屏幕(使用丘伊或类似工具)?

Flutter 如何让视频在不拉伸的情况下充满屏幕(使用丘伊或类似工具)?,flutter,video,dart,exoplayer,Flutter,Video,Dart,Exoplayer,正如标题所说,有没有可能让一个视频在没有可见拉伸的情况下填满屏幕?如果是这样的话,我该如何处理朱伊 链接至丘伊: 问题: 播放器填满了屏幕,但视频被拉伸了,因为我使用了MediaQuerys,但除了提供aspectratio外,我不知道还有什么其他方法可以改变播放器的大小。我需要保留视频的aspectratio,但也有视频适合屏幕 我的当前代码: 导入'dart:io'; 进口“包装:颤振/材料.省道”; 进口“包装:丘伊/丘伊.达特”; 导入“package:video_player/vid

正如标题所说,有没有可能让一个视频在没有可见拉伸的情况下填满屏幕?如果是这样的话,我该如何处理朱伊

链接至丘伊:

问题

播放器填满了屏幕,但视频被拉伸了,因为我使用了MediaQuerys,但除了提供aspectratio外,我不知道还有什么其他方法可以改变播放器的大小。我需要保留视频的aspectratio,但也有视频适合屏幕

我的当前代码

导入'dart:io';
进口“包装:颤振/材料.省道”;
进口“包装:丘伊/丘伊.达特”;
导入“package:video_player/video_player.dart”;
类MyVideoPlayer扩展StatefulWidget{
最终字符串路径;
MyVideoPlayer({Key-Key,@required this.path}):超级(Key:Key);
@凌驾
_MyVideoPlayerState createState()=>new_MyVideoPlayerState();
}
类_MyVideoPlayerState扩展状态{
视频播放控制器\u视频播放控制器;
咀嚼控制器;
未来,未来;;
目标平台(TargetPlatform);;
Future initVideoPlayer()异步{
等待videoPlayerController.initialize();
设置状态(){
打印(videoPlayerController.value.aspectRatio);
_咀嚼控制器=咀嚼控制器(
aspectRatio:MediaQuery.of(context).size.width/MediaQuery.of(context).size.height,
videoPlayerController:\u videoPlayerController,
自动播放:错误,
循环:错误,
//showControls:false,
MaterialProgressColor:ChewieProgressColor(
播放颜色:Colors.red,
手颜色:颜色。蓝色,
背景颜色:颜色。灰色,
bufferedColor:Colors.lightGreen,
),
//占位符:容器(
//颜色:颜色。灰色,
// ),
);
});
}
@凌驾
void initState(){
super.initState();
//\u controller=VideoPlayerController.network('https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_20mb.mp4');
_videoPlayerController=videoPlayerController.file(文件(widget.path));
_future=initVideoPlayer();
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
主题:ThemeData.light().copyWith(
平台:_平台??主题(上下文)。平台,
),
家:脚手架(
正文:未来建设者(
未来:未来,
生成器:(上下文,快照){
返回\u videoPlayerController.value.initialized
?丘伊(
控制器:_cheuicontroller,
)
:居中(子项:循环压缩机指示器());
}),
),
);
}
@凌驾
无效处置(){
_videoPlayerController.dispose();
_chouicontroller.dispose();
super.dispose();
}
}

我认为这是因为您的视频与屏幕的宽度和高度不匹配。如果你只是使用

aspectRatio: _videoPlayerController.value.aspectRatio,
您将看到视频的宽度和高度


你可以用一个固定高度/宽度的容器包装咀嚼片,然后玩纵横比。我想你需要将其拉伸以适应整个屏幕。

你必须解释“Chuie”是什么,因为它没有标签。很抱歉,它是一个插件:它包装了谷歌的视频播放器插件,该插件使用exoplayer并提供材料设计控制。任何解决方案。。。请这是正确的方式做纵横比,但就目前而言,我无法找到一个解决方案,它填补屏幕不使用另一个插件。(而不是水平裁剪)这是一个类似的问题:。插件flick_video_播放器似乎考虑了设备的高度和宽度,并保留了纵横比。