flutter video_player 在发布模式下不播放视频

Posted

技术标签:

【中文标题】flutter video_player 在发布模式下不播放视频【英文标题】:flutter video_player Not playing the video in release mode 【发布时间】:2021-06-29 05:54:51 【问题描述】:

我使用video_palyer : ^2.1.0 在调试模式下正常播放视频,但是当我运行发布 apk 时视频不播放

更新 flutter_facebook_authflutter_facebook_login 的问题,当我删除它们时,视频工作正常 有什么办法可以同时保留它们吗,因为我两者都需要 video_playerflutter_facebook_login

瞧我的flutter doctor :

[√] Flutter(Channel dev,2.1.0-12.1.pre,在 Microsoft Windows 上 [版本 10.0.19042.867],语言环境 en-US) • Flutter 版本 2.1.0-12.1.pre,位于 C:\src\flutter • 框架修订 8264cb3e8a(3 周前),2021-03-10 12:37:57 -0800 • 引擎修订版 711ab3fda0 • Dart 版本 2.13.0(构建 2.13.0-116.0.dev)

[√] android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.3) • Android SDK 位于 C:\Users\DEVANDROID\AppData\Local\Android\sdk • 平台 android-30,构建工具 30.0.3 • Java 二进制文件位于:C:\Program Files\Android\Android Studio\jre\bin\java • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_242-release-1644-b01) • 接受所有 Android 许可证。

[√] Chrome - 为网络开发 • C:\Program Files\Google\Chrome\Application\chrome.exe 中的 Chrome

[√] Android Studio(4.1.0版) • C:\Program Files\Android\Android Studio 中的 Android Studio • Flutter 插件可以从以下位置安装: https://plugins.jetbrains.com/plugin/9212-flutter • Dart 插件可以从以下位置安装: https://plugins.jetbrains.com/plugin/6351-dart • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_242-release-1644-b01)

[√] VS 代码(版本 1.54.3) • C:\Users\DEVANDROID\AppData\Local\Programs\Microsoft VS Code 中的 VS 代码 • Flutter 扩展版本 3.20.0

[√] 已连接设备(3 个可用) • EML L29(移动) • UBV7N18A12004906 • android-arm64 • Android 10 (API 29) • Chrome(网络) • chrome • web-javascript • Google Chrome 89.0.4389.114 • Edge(网络) • edge • web-javascript • Microsoft Edge 89.0.774.63

• 未发现任何问题!进程以退出代码 0 结束

瞧我的代码示例:

VideoPlayerController _controller;
  double width;
  double height;
  bool startedPlaying = false;

  @override
  void initState() 
    super.initState();
    _controller = VideoPlayerController.asset('assets/video/successEqo.mp4');
  

  @override
  void dispose() 
    _controller.dispose();
    super.dispose();
  


  Future<bool> started() async 
    _controller.setLooping(true);
    _controller.setVolume(1);
    await _controller.initialize();
    await _controller.play();
    startedPlaying = true;
    return true;
  

  @override
  Widget build(BuildContext context) 
    width = MediaQuery.of(context).size.width;
    height = MediaQuery.of(context).size.height;
    return Material(
      color: Colors.transparent,
      child: Container(
        color: Colors.red,
        child: FutureBuilder<bool>(
          future: started(),
          builder: (BuildContext context, AsyncSnapshot<bool> snapshot) 
            if (snapshot.data == true) 
              return AspectRatio(
                aspectRatio: _controller.value.aspectRatio,
                child: VideoPlayer(_controller),
              );
             else 
              return Center(child: const Text('waiting for video to load'));
            
          ,
        )

        ,
      ),
    );
  

【问题讨论】:

【参考方案1】:

尝试运行以下命令:

flutter build apk --release --split-per-abi

【讨论】:

以上是关于flutter video_player 在发布模式下不播放视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 video_player 上无延迟地连续播放视频?

Flutter开发--视频播放器

Flutter 中的裁剪视频 [关闭]

Flutter 在启动时崩溃:在路径 DexPathList 上找不到类 .MainActivity

如何在 Flutter 中在所有平台(包括 Web)上播放音频

Flutter 视频播放器仅在 iOS 上引发异常