在Flutter 中使用 video_player 插件播放视频时,实现全屏功能通常需要一些额外的步骤,因为 video_player 插件本身并不直接提供全屏的 API。不过,你可以通过一些方法来实现全屏播放视频的效果。以下是一些可能的解决方案: 1. 使用 chewie 插件 chewie 是一个基于 video_player 的高级视频播放器,它提供了全屏播放等更多...
封装的播放器代码如下: import'dart:io';import'package:chewie/chewie.dart';import'package:flutter/material.dart';// ignore: depend_on_referenced_packagesimport'package:video_player/video_player.dart';classVideoPlayerWidgetextendsStatefulWidget{finalString videoUrl;finalbool fullScreenByDefault;constVideoPlay...
在initState()方法中,我们使用VideoPlayerController类来加载视频并进行初始化。在build()方法中,我们使用AspectRatio和VideoPlayer小部件来构建视频播放器的界面。 实现全屏播放逻辑:要实现视频全屏播放逻辑,可以使用Flutter的内置API OrientationBuilder 来检测设备的方向变化,并相应地更改视频播放器的尺寸。可以按照以下方式...
如下代码所示,之后在全屏的页面中同样使用Hero控件和VideoPlayer控件实现过渡动画和视频渲染。 这里的VideoPlayerController可以通过构造方法传递进来,也可以通过InheritedWidget实现共享传递,只要是和前面普通播放界面的controller是同一个即可。 Container( color: Colors.black, child: Stack( children: <Widget>[ Center( c...
要想做到状态完全一致,最好的办法就是使用安卓的共享纹理,爱奇艺和腾讯视频都是这么做的,flutter 的 video_player 是通过 controller 机制实现的,也就是不管你小屏还是大屏,只要是传递同一个 controller,那么这个视频纹理就是同一个 因此,进入全屏的时候,videoController 是一定要传的 ...
如下图所示是 Flutter 中实现后的全屏效果,而实现这个效果的关键就是跳堆栈就可以了!是的,Flutter 中简单地跳页面就能够实现无缝的全屏切换。 如下代码所示,首先在正常播放页面下加入官方video_player插件的VideoPlayer控件,并且初始化VideoPlayerController用于加载需要播放的视频并初始化,另外此处还用了Hero控件用于实现...
所以在前面的代码中,需要在全屏和非全屏页面使用同一个VideoPlayerController,这样它们就具备了同一个textureId。 具备同一个textureId后,那么只要原生层不停止播放,textureId对应的原生数据就一直处于更新状态,而这时候虽然跳转路由页面,但不同的VideoPlayer内部的Texture控件用的是同一个VideoPlayerController,也就是同一...
)));},child:Text("切换全屏"))],),),);}}classVideoFullPageextendsStatefulWidget{finalVideoPlayerControllercontroller;constVideoFullPage({Key?key,requiredthis.controller}):super(key:key);@override_VideoFullPageStatecreateState()=>_VideoFullPageState();}class_VideoFullPageStateextendsState<VideoFull...
在做APP 时,我们用到了视频播放器,当前使用官方提供的插件「video_player」https://github.com/flutter/plugins/tree/master/packages/video_player,可能该插件在国外没什么问题,但国内很多视频播放器做的很精良,自定义功能很齐全。 举一个例子:国内的 APP 全屏播放视频时,几乎都是横向全屏的,但官方提供的插件在 ...
在做APP 时,我们用到了视频播放器,当前使用官方提供的插件「video_player」https://github.com/flutter/plugins/tree/ma...,可能该插件在国外没什么问题,但国内很多视频播放器做的很精良,自定义功能很齐全。 举一个例子:国内的 APP 全屏播放视频时,几乎都是横向全屏的,但官方提供的插件在 iOS 端是竖向直播的,...