我正在使用带有定制控制栏的咀嚼播放器,当播放器切换到全屏时,我看不到控件。即使播放器转到全屏,我也需要显示控件。我没有使用 Chewie 提供的控件,因为我不希望进度搜索栏可触摸,即我不希望用户倒回视频......
下面是代码:-
@override
void initState() {
super.initState();
_videoPlayerController1 = VideoPlayerController.network(widget.videoURL);
_chewieController = ChewieController(
videoPlayerController: _videoPlayerController1,
// aspectRatio: 3 / 2,
autoPlay: false,
looping: false,
autoInitialize: true,
showControls: true,
fullScreenByDefault: false,
//seekTo:value,
startAt: Duration(milliseconds: widget.time),
//customControls: customControl(),
placeholder: Container(
color: Colors.black87,
child: Container(
child: Center(
child: CircularProgressIndicator(
valueColor:
new AlwaysStoppedAnimation<Color>(Colors.deepPurpleAccent),
)),
),
),
// overlay:
// autoInitialize: true,
);
setState(() {
_loading = true;
});
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _onWillPop,
child: SafeArea(
child: MaterialApp( …Run Code Online (Sandbox Code Playgroud) 是否可以使用 flutter video_player 跳转到某个时间戳并显示帧而不启动视频?
只有当我在seekTo之后立即调用play时,我才能更改帧。
_videoPlayerController.seekTo(Duration(milliseconds: value));
_videoPlayerController.play();
Run Code Online (Sandbox Code Playgroud)
我也尝试过
_videoPlayerController.seekTo(Duration(milliseconds: value));
_videoPlayerController.play();
_videoPlayerController.pause();
Run Code Online (Sandbox Code Playgroud)
但它不会改变视频的显示帧。
我在 flutter 中使用 video_player 插件并与 Firebase 结合使用,我刚刚意识到,如果我让它播放几秒钟,视频可能会消耗我的整个 Firebase 带宽。所以我认为(如果我错了,请纠正我!)最好的想法是当达到一定量时停止缓冲,例如视频的 5% 或视频的前 5 秒,但如果有人超快的下载速度,他们可以在前3秒内获得整个视频,这样无论如何都会消耗限制。
有没有办法做到这一点?想知道什么时候缓冲量足以播放 5 秒,然后停止缓冲?也许用另一个插件?
编辑1:或者video_player只是在数据到来时流式传输数据,而不是预缓冲?如果是这种情况,那么只需关闭视频播放器就足以限制检索的数据量,对吗?
预先感谢您对此有任何想法!
video-streaming firebase flutter google-cloud-firestore flutter-video-player
每当我在video_player中播放新文件时,我都会收到一长串日志,这使得查看我自己的日志记录变得更加困难。其中很多都包含记录值信息和嗨有没有办法让 video_player 不那么喋喋不休?
I/ExoPlayerImpl(21717): Init d44ef38 [ExoPlayerLib/2.9.6] [crosshatch, Pixel 3 XL, Google, 29]
W/MetadataUtil(21717): Failed to parse index/count attribute: trkn
D/CCodec (21717): allocate(c2.qti.avc.decoder)
I/Codec2Client(21717): Creating a Codec2 client to service "default"
I/Codec2Client(21717): Client to Codec2 service "default" created
I/CCodec (21717): setting up 'default' as default (vendor) store
I/CCodec (21717): Created component [c2.qti.avc.decoder]
D/CCodecConfig(21717): read media type: video/avc
D/ReflectedParamUpdater(21717): extent() != 1 for single value type: output.buffers.pool-ids.values
D/CCodecConfig(21717): ignoring local param raw.size (0xd2001800) as it is already supported
D/CCodecConfig(21717): ignoring …Run Code Online (Sandbox Code Playgroud) 我的 Flutter 应用程序有一些 YouTube 视频链接。那些 YouTube 链接,我想通过 google chromecast 进行流式传输。我已经看到一些使用下面的颤振库进行视频流投射。
但这些库正在播放 MP4 格式的视频流。所以我正在寻找通过 chromecast 中的 flutter 应用程序播放 YouTube 视频的方法。
如果有任何代码线索,请有人建议我。
youtube video-streaming chromecast flutter flutter-video-player
我将我的颤振更新到 1.22.0,现在我的 video_player 给了我异常错误。在我将颤振更新到 1.22.0 之前,它运行良好。
这是我的错误:
E/flutter (8545): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:'package:flutter/src/services/message_codec.dart':断言失败:第 111 行 pos 15:'代码!= null': 不正确。E/flutter (8545): #0
_AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39) E/flutter (8545): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart: 36:5) E/flutter (8545): #2
new PlatformException (package:flutter/src/services/message_codec.dart:111:15) E/flutter (8545): #3 VideoPlayerApi.create (package:video_player_platform_interface/messages .dart:205:13) E/颤振(8545):E/颤振(8545):#4
MethodChannelVideoPlayer.create (package:video_player_platform_interface/method_channel_video_player.dart:46:42) E/flutter (8545): #5 VideoPlayerController.initialize (package:video_player/video_player.dart:275:45) E/flutter (8545): #6 _ScreenBackgroundVideoState.initState (package:flow/widget/background/screen_background_video.dart:17:9) E/flutter (8545): #7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4765:58) E /flutter ( 8545): #8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5) E/flutter (8545): #9 Element.inflateWidget (package:flutter/src/widgets/framework .dart:3569:14) E/flutter (8545): #10 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6236:32) E/flutter (8545): #11 Element.inflateWidget (package …
我正在尝试构建一个应用程序,其中后端生成一个短视频并将其作为响应中的文件返回。在 Flutter 前端中,我正在解析响应对象以获取表示视频的字节。使用这些字节,我想创建一个Video Player。
这是我的问题:如何初始化VideoPlayerController从响应中收到的字节数组?
根据文档,VideoPlayerController.file()无法正常工作,因为这需要 dart.io,而 dart.io 在网络上不可用。这只剩下network或asset选项。
我希望在 Flutter 中重新创建 Snapchat 的背靠背视频格式。由于video_player缺少视频结束时的回调(并且容易出现回调地狱),我想知道是否有人有一些构建这样的东西的指针。
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
void main() {
runApp(MaterialApp(
title: 'My app', // used by the OS task switcher
home: MyHomePage(),
));
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List<VideoPlayerController> _controllers = [];
VoidCallback listener;
bool _isPlaying = false;
int _current = 0;
@override
void initState() {
super.initState();
// Add some sample videos
_controllers.add(VideoPlayerController.network(
'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4',
));
_controllers.add(VideoPlayerController.network(
'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4',
));
_controllers.add(VideoPlayerController.network(
'https://flutter.github.io/assets-for-api-docs/assets/videos/butterfly.mp4',
)); …Run Code Online (Sandbox Code Playgroud) 我想实时获取正在播放的视频的当前位置。我正在考虑使用监听器,但如果我这样做:
_controller.addListener(() => print(_controller.value.position.inMilliseconds))
Run Code Online (Sandbox Code Playgroud)
它仅每 500 毫秒打印一次该值。这太慢了,视频每 33 毫秒更新一次,甚至更频繁。任何人都知道为什么会发生这种情况以及实现我想要的目标的正确方法是什么?
PS 我能够通过在视频开始时启动动画控制器来实现我想要的目标,但这看起来像是一个黑客。
我试图在 flutter web 应用程序中使用 Viedo 作为脚手架小部件的背景,但视频没有显示,尽管它在 android 中工作正常,但没有显示在 web 中,也没有给出任何类型的错误。
我正在使用这个插件来实现视频播放器https://pub.dev/packages/video_player
我的代码:
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
VideoPlayerController? _videoPlayerController;
@override
void initState() {
// TODO: implement initState
super.initState();
_videoPlayerController =
VideoPlayerController.asset("assets/backgroundVideo.mp4")
..initialize().then((_) {
_videoPlayerController!.play();
_videoPlayerController!.setLooping(true);
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Stack(
children: <Widget>[
SizedBox.expand(
child: FittedBox(
fit: BoxFit.fill,
child: SizedBox(
width: _videoPlayerController!.value.size.width ?? 0,
height: …Run Code Online (Sandbox Code Playgroud) video-player flutter flutter-dependencies flutter-web flutter-video-player
即使我从 better_player 文档复制了示例,我仍然收到以下错误。我确保我的 Android 目标是 31,kotlin 是 1.5+,并且启用了互联网权限。这是我的颤动版本:
\n\xe2\x9e\x9c drm_player git:(main) \xe2\x9c\x97 flutter --version
\nFlutter 2.8.1 \xe2\x80\xa2 通道稳定 \xe2\x80\xa2 https://github.com/flutter/flutter.git \n框架 \xe2\x80\xa2 修订版 77d935af4d(6 周前) \xe2\x80 \xa2 2021-12-16 08:37:33 -0800\n引擎 \xe2\x80\xa2 修订版 890a5fca2e\n工具 \xe2\x80\xa2 Dart 2.15.1
\n这是我正在努力解决的代码:
\nimport \'package:better_player/better_player.dart\';\nimport \'package:drm_player/constants.dart\';\nimport \'package:flutter/material.dart\';\n\nclass WidevinePlayer extends StatefulWidget {\n const WidevinePlayer({Key? key}) : super(key: key);\n\n @override\n _WidevinePlayerState createState() => _WidevinePlayerState();\n}\n\nclass _WidevinePlayerState extends State<WidevinePlayer> {\n late BetterPlayerController _widevineController;\n\n @override\n void initState() {\n setUpWidvineController();\n super.initState();\n }\n\n void setUpWidvineController() async {\n BetterPlayerConfiguration betterPlayerConfig …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 flutter web 上播放本地视频文件,但在选择视频后卡住了。根据这个 github 帖子,可以通过将视频的 uint8list 转换为 blob,然后使用 videoController.network 播放 blob 来播放本地视频文件:github。问题是我不确定如何正确转换为 blob。如何将 uint8list 转换为 blob,然后在 flutter 视频播放器中播放该 blob?
flutter ×12
flutter-web ×2
chromecast ×1
dart ×1
exoplayer ×1
firebase ×1
snapchat ×1
video-player ×1
youtube ×1