正如标题所说,是否可以让视频充满屏幕而不出现明显的拉伸?如果是这样,我该如何用咀嚼做到这一点?
咀嚼链接: https: //pub.dev/packages/chewie
播放器填满屏幕,但视频被拉伸,因为我使用了 MediaQuerys,但除了提供宽高比之外,我不知道有任何其他方法可以更改播放器的大小。我需要保留视频的宽高比,但还要让视频适合屏幕。
我当前的代码:
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:chewie/chewie.dart';
import 'package:video_player/video_player.dart';
class MyVideoPlayer extends StatefulWidget {
final String path;
MyVideoPlayer({Key key, @required this.path}) : super(key: key);
@override
_MyVideoPlayerState createState() => new _MyVideoPlayerState();
}
class _MyVideoPlayerState extends State<MyVideoPlayer> {
VideoPlayerController _videoPlayerController;
ChewieController _chewieController;
Future<void> _future;
TargetPlatform _platform;
Future<void> initVideoPlayer() async {
await _videoPlayerController.initialize();
setState(() {
print(_videoPlayerController.value.aspectRatio);
_chewieController = ChewieController(
aspectRatio: MediaQuery.of(context).size.width/ MediaQuery.of(context).size.height,
videoPlayerController: _videoPlayerController,
autoPlay: false,
looping: false,
// showControls: false,
materialProgressColors: ChewieProgressColors(
playedColor: …Run Code Online (Sandbox Code Playgroud) 我是Flutter和Dart的新手,所以请多多包涵。我正在尝试使用Flutter通过Camera Plugin显示摄像机预览,但是有两个问题。1)预览被拉伸,因此看起来很奇怪。2)我想BottomNavigationBar在预览下方显示一个,但是“摄像机预览”使用了所有屏幕空间。
我初始化相机并打开预览:
@override
Widget build(BuildContext context) {
if (!_isReady) return new Container();
if (!controller.value.initialized) return new Container();
return new CameraPreview(controller);
}
Run Code Online (Sandbox Code Playgroud)
1)这是我调用的类的构建方法_CameraWidgetState。如何使此预览看起来不那么拉伸?
2)为了使CameraWidget不会占用所有空间,我尝试将它放到Scaffold没有运气的内部:
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new Center(
child: new CameraWidget(),
),
bottomNavigationBar: new BottomNavigationBar(
items: [
new BottomNavigationBarItem(
icon: new Icon(Icons.camera), title: new Text("Left")),
new BottomNavigationBarItem(
icon: new Icon(Icons.favorite),
title: new Text("Right"))
],
),
);
}
Run Code Online (Sandbox Code Playgroud)
任何想法或帮助表示赞赏!
我正在使用 CameraPreview 测量对象的高度,但问题是我无法全屏设置 cameraPreview 高度。
我试过Positioned widget,它填满了屏幕,但图像被拉伸了。我试过Transform Widget,但高度没有填满全屏,空白即将来临。图像没有被拉伸。
我的代码:
final size = MediaQuery.of(context).size;
final deviceRatio = size.width / size.height;
return Stack(
children: <Widget>[
Transform.scale(
scale: controller.value.aspectRatio/deviceRatio,
child: new AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: new CameraPreview(controller),
),
),);
Run Code Online (Sandbox Code Playgroud)
请帮助我在没有图像拉伸的情况下安装 CameraPreview "FULLSCREEN"。