当前位置: 首页 > 知识库问答 >
问题:

video_player插件无法播放视频-Flutter

鞠泰平
2023-03-14

我将颤动更新到1.22.0,现在我的video_player给我异常错误。在我将颤动更新到1.22.0之前,它工作正常。

这是我的错误:

E/颤动 ( 8545): [错误:颤动/库/ui/ui_dart_state.cc(177)] 未处理的异常:“包:颤动/src/服务/message_codec.dart”:断言失败:第 111 行 pos 15:“代码 != null”:不为 true。E/颤动 ( 8545): #0
_AssertionError._doThrowNew (飞镖:核心补丁/errors_patch.dart:46:39) E/颤动 ( 8545): #1 _AssertionError._throwNew (飞镖:核心补丁/errors_patch飞镖:36:5) E/颤动 ( 8545): #2
新平台例外 (包:颤动/src/服务/message_codec.dart:111:15) E/颤动 ( 8545): #3 视频播放器Api.create (包:video_player_platform_interface/消息.dart:205:13) E/颤动 ( 8545): E/颤动 ( 8545): #4
方法频道视频播放器创建 (包:video_player_platform_interface/method_channel_video_player.dart:46:42) E/颤动 ( 8545): #5 视频播放器控制器.初始化 (包:video_player/video_player.dart:275:45) E/颤动 ( 8545): #6 _ScreenBackgroundVideoState.初始化状态 (包:流/小部件/背景/screen_background_video.dart:17:9) E/颤动 ( 8545): #7 StatefulElement._firstBuild (包:颤动/src/小部件/框架飞镖:4765:58) E/颤动 ( 8545): #8组件元素安装 (包:颤动/src/widgets/框架.dart:4601:5) E/颤动 ( 8545): #9 元素膨胀小插 (包:颤动/src/widgets/框架飞镖:3569:14) E/颤动 ( 8545): #10 多孩子辐射器对象元素安装 (包:颤动/src/小部件/框架飞镖:6236:32) E/颤动 ( 8545): #11 元素膨胀小插 (包:颤动/src/widgets/框架飞镖:3569:14) E/颤动 ( 8545): #12 元素更新儿童 (包:颤动/src/src/widgets/框架.dart:3327:18) E/颤动 ( 8545): #13 单儿童管理器对象安装 (包:颤动/src/小部件/框架飞镖:6118:14) E/颤动 ( 8545): #14 元素膨胀小插 (包:颤动/src/widgets/框架飞镖:3569:14) E/颤动 ( 8545): #15 元素更新儿童 (包:颤动/src/小部件/框架 飞镖:3327:18) E/颤动 ( 8545): #16 组件元素.performRebuild (包:颤动/src/小部件/小部件/框架飞镖:4652:16) E/扑动 ( 8545): #17 元素重建 (包装:颤动/src/widgets/framework.dart:4343:5) E/颤动 ( 8545): #18 ComponentElement._firstBuild (包:颤动/src/widgets/框架飞镖:4606:5) E/颤动 ( 8545): #19 组件元素安装 (包:颤动/src/widgets/框架飞镖:4601:5) E/颤动 ( 8545): #20 元素.充气小插 (包:颤动/src/小部件/框架飞镖:3569:14) E/颤动 ( 8545): #21 元素更新柴尔德 (包:颤动/src/小部件/框架飞镖:3327:18) E/颤动 ( 8545): #222单侠猎人目标安装 (包:颤抖/src/widgets/框架飞镖:6118:14) E/颤动 ( 8545): #23 元素膨胀小目标 (包:颤抖/src/widgets/框架.dart:3569:14) E/颤动 ( 8545): #24 元素更新孩子 (包:扑动/src/widgets/框架.dart:3327:18) E/颤动 ( 8545): #25 单子进化者对象依奈特.mount(包:颤动/src/widgets/framework.dart:6118:14) E/颤动 ( 8545): #26 元素.膨胀小子 (包:扑动/src/widgets/widgets/框架飞镖:3569:14) E/颤动 ( 8545): #27 元素更新孩子 (包:颤动/src/小部件/框架飞镖:3327:18) E/颤动 ( 8545): #28 单子女孩目标元素安装 (包:颤动/src/widgets/框架飞镖:6118:14) E/颤动 ( 8545): #29 元素.膨胀小插 (包:颤动/src/小部件/框架飞镖:3569:14) E/颤动 ( 8545): #30 元素更新儿童 (包:颤动/src/小部件/框架飞镖:3327:18) E/颤动 ( 8545): #311单侠猎人目标安装 (包:颤动/src/widgets/框架.dart:6118:14) E/颤动 ( 8545): #32 元素膨胀小插 (包:颤抖/src/widgets/框架飞镖:3569:14) E/颤动 ( 8545): #33 元素.更新儿童 (包:颤动/src/widgets/框架.dart:3327:18) E/颤动 ( 8545): #34 组件元素执行重建 (包:颤动/src/widgets/框架飞镖:4652:16) E/颤动 ( 8545): #35 元素重建 (包:扑腾/src/widgets/框架飞镖:4343:5) E/颤动 ( 8545): #36 ComponentElement._firstBuild (包:扑动/src/小部件/框架飞镖:4606:5) E/颤动 ( 8545): #37 组件元素安装 (包:颤动/src/小部件/框架.dart:4601:5) E/颤动 ( 8545): #38 元素.膨胀小插 (包:颤动/src/widgets/框架.dart:3569:14) E/颤动 ( 8545): #39 元素.updateChild (包:扑动/src/小部件/框架.dart:3327:18) E/扑动 ( 8545): #40 单手精灵对象安装 (包装:颤动/src/小部件/框架飞镖:6118:14) E/颤动 ( 8545): #41 元素膨胀小目标 (包:颤动/src/小部件/框架飞镖:3569:14) E/颤动 ( 8545): #42 元素更新孩子 (包:颤动/src/小部件/框架飞镖:3327:18) E/颤动 ( 8545): #43 组件元素执行重建 (包:颤动/src/widgets/框架飞镖:4652:16)

这是我的代码

import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

class ScreenBackgroundVideo extends StatefulWidget {
  @override
  _ScreenBackgroundVideoState createState() => _ScreenBackgroundVideoState();
}

class _ScreenBackgroundVideoState extends State<ScreenBackgroundVideo> {
  VideoPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = VideoPlayerController.asset('assets/vid/login.mp4')
      // set background video using assets for login screen
      ..initialize().then((_) {
        // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
        setState(() {});
      }); // background video will play as soon as the splashscreen is closed
    _controller.play();
    _controller
        .setLooping(true); // looping set to true for the background video
    _controller.setVolume(0); // volume set to 0 for background video
  }

  @override
  void dispose() {
    super.dispose();
    // TODO: implement dispose
    _controller.dispose(); // Dispose the controller after play is done.
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: _controller.value.initialized
          ? AspectRatio(
              aspectRatio: _controller.value.aspectRatio,
              child: VideoPlayer(_controller),
            )
          : Container(),
    );
  }
}

需要帮助来解决这个问题。

共有3个答案

储志业
2023-03-14

同样的问题,我刚刚升级了颤动版本1.22.5,它的工作原理

阚通
2023-03-14

或者,如果您不使用视频播放器插件中的任何新功能,您可以将视频播放器降级为0.10.11 2而不是降级flutter。

您可以在此处找到更多详细信息:https://github.com/flutter/flutter/issues/66627

贺季同
2023-03-14

我不得不将我的flutter版本降级到1.20.2,这样我的video_player才能工作。

如果有任何其他解决方案,请告诉我。

 类似资料:
  • 问题内容: 我遵循了一些有关结合JavaFX与Swing(JFrame)来播放视频的教程,但是我得到的只是一个黑屏,该视频应该没有任何实际的内容播放,也没有报错。 我在这里做错什么,为什么不播放视频? 我尝试了几个.flv视频,但都不会开始播放(当我在浏览器中打开它们时,它们会播放) 我在装有K-lite完整编解码器包的Windows 8.1 N Pro上运行jre7和jdk1.7.0_45 编辑

  • 在我的应用程序中,我想显示来自服务器URI路径的视频,在这里,第一次播放视频,当我想第二次播放视频时,视频没有播放,并显示一个弹出窗口,如无法播放此视频 下面是我的错误 提前谢谢。

  • 问题内容: 无法播放此视频错误… !! 看到图片 截屏 怎么办?按下播放按钮后,它说不能播放此视频。需要解决这个问题。 问题答案: 您好,前天我遇到了同样的问题,几乎尝试了所有方法,但都没有成功。之后,我使用了这个库,并且运行良好。只需遵循几个步骤: 第1步。 将其添加到您的gradle 第2步。 将其添加为xml布局中的视频播放。 第3步。 从此处检查如何在您的班级中使用此库, 我这边还有另外一

  • 每当我加载html文件时,它都会给我一个错误 每当我按下播放按钮时,就会出现以下错误 我能够加载任何远程视频并运行,但问题是当我从资产文件夹代码加载本地视频以加载文件并设置web视图时 干杯,Saurav

  • 问题内容: 我正在使用Flask提供.m3u8和.ts文件来模拟vod流。 视频播放器不会流式传输文件并显示错误(请参见下面的屏幕截图)。我找不到它是什么错误的日志。 我缺少某处的日志消息吗?是什么原因造成的,我该如何解决? 问题答案: 默认情况下,开发服务器以单线程模式运行,这意味着它一次只能处理一个请求。你一次请求两个文件流,.m3u8和.ts。你可以传递或以允许一次处理多个请求,但是,用它自