diff --git a/lib/src/visual/views/camera/share_image_editor.view.dart b/lib/src/visual/views/camera/share_image_editor.view.dart index 423b472b..e2795911 100644 --- a/lib/src/visual/views/camera/share_image_editor.view.dart +++ b/lib/src/visual/views/camera/share_image_editor.view.dart @@ -667,6 +667,25 @@ class _ShareImageEditorView extends State { } } + Widget _buildScreenshotViewer() { + return Screenshot( + controller: screenshotController, + child: LayersViewer( + layers: layers.where((x) => !x.isDeleted).toList(), + onUpdate: () { + for (final layer in layers) { + layer.isEditing = false; + if (layer.isDeleted) { + removedLayers.add(layer); + } + } + layers = layers.where((x) => !x.isDeleted).toList(); + setState(() {}); + }, + ), + ); + } + @override Widget build(BuildContext context) { pixelRatio = MediaQuery.of(context).devicePixelRatio; @@ -784,26 +803,27 @@ class _ShareImageEditorView extends State { width: currentImage.width / pixelRatio, child: Stack( children: [ - if (videoController != null) + if (videoController != null && + videoController!.value.isInitialized) Positioned.fill( - child: VideoPlayer(videoController!), - ), - Screenshot( - controller: screenshotController, - child: LayersViewer( - layers: layers.where((x) => !x.isDeleted).toList(), - onUpdate: () { - for (final layer in layers) { - layer.isEditing = false; - if (layer.isDeleted) { - removedLayers.add(layer); - } - } - layers = layers.where((x) => !x.isDeleted).toList(); - setState(() {}); - }, - ), - ), + child: Center( + child: AspectRatio( + aspectRatio: videoController!.value.aspectRatio, + child: Stack( + children: [ + Positioned.fill( + child: VideoPlayer(videoController!), + ), + Positioned.fill( + child: _buildScreenshotViewer(), + ), + ], + ), + ), + ), + ) + else + _buildScreenshotViewer(), ], ), ), diff --git a/lib/src/visual/views/chats/media_viewer_components/media_content_renderer.comp.dart b/lib/src/visual/views/chats/media_viewer_components/media_content_renderer.comp.dart index 0033f4eb..5734011a 100644 --- a/lib/src/visual/views/chats/media_viewer_components/media_content_renderer.comp.dart +++ b/lib/src/visual/views/chats/media_viewer_components/media_content_renderer.comp.dart @@ -21,16 +21,14 @@ class MediaContentRenderer extends StatelessWidget { Widget build(BuildContext context) { return Stack( children: [ - if (videoController != null) + if (videoController != null && videoController!.value.isInitialized) Positioned.fill( - child: PhotoView.customChild( - initialScale: PhotoViewComputedScale.contained, - minScale: PhotoViewComputedScale.contained, - backgroundDecoration: const BoxDecoration( - color: Colors.transparent, - ), - child: VideoPlayer( - videoController!, + child: Center( + child: AspectRatio( + aspectRatio: videoController!.value.aspectRatio, + child: VideoPlayer( + videoController!, + ), ), ), )