视频格式转换流程 视频格式转换主要分为两种类型:转封装和转码 转封装:多媒体文件是一个容器,转封装相当于容器内的物品不变只是换了一个容器,其内容不会发生改变 转码:转码就是将...
视频格式转换流程 视频格式转换主要分为两种类型:转封装和转码 转封装:多媒体文件是一个容器,转封装相当于容器内的物品不变只是换了一个容器,其内容不会发生改变 转码:转码就是将...
组合视频流和音频流 通过之前视频流与音频流编解码的学习,我们可以做到将视频流与音频流数据抽离出来,并将这些数据编码为对应的视频或音频。但往往一个多媒体文件中既包含音频也包含视...
音频解码与编码流程 解码流程 音频编解码流程与视频编解码流程一致,我们可以对 mp4 文件的音频流进行解码,并将解码后的音频数据保存到 PCM 文件中,后续我们可以通过读取 ...
视频编码流程 之前了解了如何解码多媒体文件中的视频流,并将解码后的图像进行显示,接下来我们学习如何对视频流进行编码,从 图片 → h.264 和 图片 → MP4 两个案例中...
视频解码流程 在对多媒体文件中的视频流解码前,我们先来了解以下流媒体数据的播放流程,可以根据这个流程梳理一下视频解码流程 音视频播放的原理主要分为:解协议 -> 解封装 ->...
FFmpeg libavformat 用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议,为 libavc...
附带效应 学习内容 如何从 Compose 代码观察数据流以更新界面 附带效应 API,如 LaunchedEffect、rememberUpdatedState、Dispo...
View 迁移至 Compose 主要学习内容 如何逐步将应用迁移到 Compose 如何将 Compose 添加到使用 Android View 构建的现有界面 如何在 C...
Navigation 主要学习内容 将 Jetpack Navigation 与 Jetpack Compose 结合使用的基础知识 在可组合项之间导航 使用必需和可选参数导...
手势 Compose 提供了多种 API,可帮助您检测用户互动生成的手势。API 涵盖各种用例: 其中一些级别较高,旨在覆盖最常用的手势。例如,clickable 修饰符可用...
动画 主要学习内容 如何使用几个基础动画 API 何时使用哪个 API 动画原理 相比于 Compose 中的动画,对于 View 体系中的动画我们更了解一些,比如 View...
CompositionLocal是通过组合隐式向下传递数据的工具 主要学习内容 了解什么是 CompositionLocal 创建自己的 CompositionLocal 何...
主题 主要学习内容 Material Design 入门指南以及如何针对您的品牌对其进行自定义 Compose 如何实现 Material Design 系统 如何在应用中定...
状态 在Jetpack Compose中状态可以是随时间变化的任何值,可以是从数据库中的值到类的变量 Android 应用中的一些状态示例:根据网络情况显示的信息提示控件文章...
布局 主要学习内容 如何使用 Material 组件可组合项 什么是修饰符以及如何在布局中使用它们 如何创建自定义布局 何时可能需要固有特性 修饰符 借助Modifier,可...
Jetpack Composed Jetpack Composed创建Jetpack Compose项目基础知识可组合函数预览功能背景颜色设置重复使用可组合项布局Compos...
Handler 我们都知道Handler由Message、MessageQueue、Handler和Looper组成,接下来我们带着问题,从源码中寻找 Handler 的具体...