目前市面上的Flutter都普遍用于一些简单页面,单纯铺设UI,而开眼快创作为完全使用Flutter开发的APP,除了简单的信息流页面,还有更重要的页面——视频编辑页面和模版视频制作页面。今天主要介绍一下开眼快创的视频编辑页面是如何生成和优化的。

在进入开眼快创项目之前,项目里有很多人甚至对Flutter是完全没有了解的,再加上当时市面上还没找到用Flutter写视频编辑页面的APP,因此很多技术方案都经过了漫长的摸索和迭代。

首先,熟悉一下开眼快创APP中视频编辑页面的基本样式(如下图):

视频编辑页面有主要以下几个特点:

  1. 状态复杂:有太多视频编辑的状态以及当前页面用户操作的中间状态等等。

  2. 技术复杂:跨端方案的多端数据类对齐和信息通信效率的提升。

  3. 逻辑复杂:变速的需求将时间对齐这件简单事情的复杂度提升了一个次元。

  4. UI复杂:主要复杂在时间轴、视频轴、音乐轴以及音效轴等等。

  5. 性能要求高:预览播放时整个页面需根据播放情况更新对应状态,后续优化将主要针对这一点。

基于以上几个特点考虑,在技术方案确定之初,我们也考虑过视频编辑页面是否需要用原生来写࿰

Flutter系列(三):Flutter挑战复杂页面!视频编辑页面来袭。相关推荐

  1. flutter系列之:flutter中的变形金刚Transform

    文章目录 简介 Transform简介 Transform的使用 总结 简介 虽然我们在开发APP的过程中是以功能为主,但是有时候为了美观或者其他的特殊的需求,需要对组件进行一些变换.在Flutter ...

  2. Flutter系列之在 macOS 上安装和配置 Flutter 开发环境

    本文为Flutter开发环境在macOS下安装全过程: 一.系统配置要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS(64位) 磁盘空间:700 MB(不 ...

  3. Flutter 动态化 | Flutter + Dart 三端一体化动态化平台实践

    导读 FairPushy 是基于Flutter+Dart三端一体化打造的动态更新平台主要由Web + Server + Native全部使用Flutter+Dart编写,为Flutter动态化场景提供 ...

  4. 【Flutter】创建 Flutter 项目 ( Android Studio 创建并运行 Flutter 应用 | 命令行创建并运行 Flutter 应用 | 运行 Flutter 应用三种方式 )

    文章目录 一.Android Studio 中创建 Flutter 项目 二.命令行创建 Flutter 项目 三.通过命令行方式运行 Flutter 项目 四.通过 Android Studio 可 ...

  5. 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

    原文:学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 ...

  6. 用 Flutter 写一个精美的登录页面(最新版)

    用 Flutter 写一个精美的登录页面(最新版) 主体结构 标题 输入框 登录按钮 其他登录方式 注册按钮 完整源码 参考了博客:用flutter写一个精美的登录页面.但是那篇文章是 18 年的,较 ...

  7. 决胜 Flutter 系列之第一章:熟悉战场

    欢迎参加"决胜 Flutter" 实训课程,这里是你此次实训之旅的起点.本章将带您快速了解移动开发的现状,然后向您介绍 Flutter 的发展历史以及优势特点,最后一起动手,搭建高 ...

  8. 后端如何发出请求_gRPC系列(三) 如何借助HTTP2实现传输

    本系列分为四大部分: gRPC系列(一) 什么是RPC? gRPC系列(二) 如何用Protobuf组织内容 gRPC系列(三) 如何借助HTTP2实现传输 gRPC系列(四) 框架如何赋能分布式系统 ...

  9. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 BasicMessageChannel 通信 )

    文章目录 前言 一.Android 端 BasicMessageChannel 构造函数 二.Android 端 MessageCodec 子类实现 三.Android 端 setMessageHan ...

最新文章

  1. 如何创建一个用弹出窗口来查看详细信息的超链接列
  2. VS2012+EF6+Mysq
  3. 物联网产业链及市场分
  4. win7 IIS7.5 HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态...
  5. The requested URL /**** was not found on this server
  6. MyBatis-Plus——增删查改
  7. 【kafka】JMX 监控kafka kafka rmi NoSuchObjectException no such object in table
  8. 「小程序JAVA实战」小程序 loading 提示框与页面跳转(37)
  9. 大数据日知录_腾讯T4专家精心整理:java+大数据+机器学习+数据挖掘+算法大集结...
  10. JDBC连接池DBUtils
  11. 圆台下料展开计算方法_冲压件展开计算方法(二),转发给每一位冲压人
  12. HDU2147 kiki's game
  13. java微信项目开发教程,Java+微信公众号开发过程步骤详解
  14. Android事件分发机制综述
  15. 大话Elasticsearch常用操作和核心原理
  16. 程序员也要学英语——印欧语音变规律总结
  17. 实现多方数据安全共享,解决普惠金融信息不对称难题
  18. 快速删除node_modules目录的方法:指令rimraf
  19. AES加密解密SHA1、SHA加密MD5加密
  20. 滤波器_理想低通滤波器python案例

热门文章

  1. 真菌疾病可能是造成恐龙大灭绝的“元凶”
  2. ES6 Promises
  3. 【算法学习笔记】O,Omega,Theta符号的使用
  4. Linux | 压缩和解压文件详细
  5. oracle 外键 更新,Oracle外键级联删除与更新
  6. 电吉他效果器含拓展 – Native Instruments Guitar Rig 5.2.2 win-mac
  7. NetBIOS 计算机名称命名限制
  8. D3 二维图表的绘制系列(六)基础折线图
  9. 如何对联邦学习进行后门攻击?
  10. PCL源码剖析之MarchingCubes算法