我不想让我的视频看起来被拉伸。我正在使用Chewie
Flutter包作为我的视频播放器。
我尝试使用_controller.value.size.aspectRatio
,但它返回错误The getter 'aspectRatio' was called on null.
这是我从相册中获取视频的代码:
Future uploadVideoFromGallery() async {
print("CALLED");
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler().requestPermissions(
[PermissionGroup.storage, PermissionGroup.camera]);
if (permissions[PermissionGroup.storage] == PermissionStatus.granted) {
var videoFile = await ImagePicker.pickVideo(source: ImageSource.gallery);
if (videoFile != null) {
getVideoThumbnail(videoFile.path);
setState(() {
isFileImage = false;
image = videoFile;
_controller = VideoPlayerController.file(image);
});
print(videoFile.path);
}
} else {
debugPrint('permission not granted');
}
}
这里是放置videoFile
的代码:
Chewie(
controller: ChewieController(
videoPlayerController: _controller,
aspectRatio: _controller.value.size.aspectRatio,
materialProgressColors: ChewieProgressColors(
playedColor: Color(colorSecondary),
handleColor: Color(colorPrimary),
bufferedColor: Color(colorPrimary),
),
placeholder: Container(
color: Colors.grey,
),
autoInitialize: true,
looping: false,
errorBuilder: (context, errorMessage) {
return Center(
child: Text(
errorMessage,
style: TextStyle(color: Color(colorText)),
),
);
},
),
)
_controller.value.aspectRatio
而不是_controller.value.size.aspectRatio
,因此尝试否定size
数据成员。 - Max Voisard_controller.value.aspectRatio
。在我从相册中选择一个视频,然后点击全屏图标,再次点击关闭全屏后,它仍然被拉伸。现在它显示实际的纵横比。 - Gentle