我是Dart/Flutter的新手,目前正在使用Flutter Camera Plugin,但当手机转到横向模式时,我遇到了CameraPreview的问题。图像保持垂直,不会随着手机旋转90度。
我尝试了无数的方法,包括Transform.rotate(),但我似乎无法将图像同时显示在屏幕上并旋转90度。
当我使用_cameraPreviewWidget查看手机时拍摄的照片时,它们仍然保存在正确的方向上。
发布于 2021-11-13 06:48:22
class _VideoPlayerWidgetState extends State<VideoPlayerWidget> {
VideoPlayerController _videoPlayerController;
ChewieController _chewieController;
@override
void initState() {
super.initState();
initializePlayer();
}
Future<void> initializePlayer() async {
// widget.url put url video file path
_videoPlayerController =
_videoPlayerController = VideoPlayerController.network(widget.url);
await Future.wait([_videoPlayerController.initialize()]);
_chewieController = ChewieController(
videoPlayerController: _videoPlayerController,
autoPlay: true,
looping: true,
);
}
bool useSensor = true;
bool portrait;
@override
Widget build(BuildContext context) {
return NativeDeviceOrientationReader(
builder: (context) {
NativeDeviceOrientation orientation =
NativeDeviceOrientationReader.orientation(context);
portrait = orientation == NativeDeviceOrientation.portraitUp;
if(orientation == NativeDeviceOrientation.landscapeLeft){
SystemChrome.setPreferredOrientations([
!portrait
? DeviceOrientation.landscapeLeft
: DeviceOrientation.portraitUp,
!portrait
? DeviceOrientation.landscapeLeft
: DeviceOrientation.portraitDown,
]);
}else{
SystemChrome.setPreferredOrientations([
!portrait
? DeviceOrientation.landscapeRight
: DeviceOrientation.portraitUp,
!portrait
? DeviceOrientation.landscapeRight
: DeviceOrientation.portraitDown,
]);
}
return _chewieController != null &&
_chewieController.videoPlayerController.value.isInitialized
? Chewie(
controller: _chewieController,
)
: Center(child: CircularProgressIndicator());
},
useSensor: useSensor,
);
}
@override
void dispose() {
_videoPlayerController.dispose();
_chewieController.dispose();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
super.dispose();
}
}
https://stackoverflow.com/questions/50633608
复制相似问题