【发布时间】:2020-02-26 09:22:31
【问题描述】:
我不希望我的视频看起来被拉长。我正在使用Chewieflutter 包作为我的视频播放器。
我尝试使用_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数据成员。 -
这很奇怪。我试过
_controller.value.aspectRatio。从我的画廊中选择一个视频后,它仍然被拉伸,然后点击全屏图标。然后再次点击它以关闭全屏。现在它显示了实际的纵横比。 -
你能展示一下你相机的截图吗?
-
我们必须等到它被初始化。
-
_controller.value.aspectRatio 总是返回 1.0 作为纵横比。
标签: flutter dart flutter-layout flutter-test