摘要: 一.Navigation的诞生 单个Activity嵌套多个Fragment的UI架构模式,已经被大多数的Android工程师所接受和采用。但是,对Fragment的管理一直是一件比较麻烦的事情。我们需要通过FragmentManager和FragmentTransaction来管理Fragment 阅读全文
posted @ 2023-07-25 17:29 故乡的樱花开了 阅读(717) 评论(0) 推荐(0)
摘要: 第一步: 我们需要在src/main下面建立一个cpp目录,然后在其中写一个CMakeLists.txt文件和一个cpp文件,直接给出代码: #CMakeLists.txt文件# For more information about using CMake with Android Studio, 阅读全文
posted @ 2023-07-18 19:18 故乡的樱花开了 阅读(200) 评论(0) 推荐(0)
摘要: 一.介绍 1.什么是ndk技术? 在学习ndk技术前,我们需要先了解一下JNI(Java Native Interface)技术,JNI技术是一种实现Java代码和C/C++代码之间交互的技术,它提供了一组编程接口,使得Java程序可以调用C/C++代码并与其进行通信。通过JNI技术,开发者可以将C 阅读全文
posted @ 2023-07-18 10:14 故乡的樱花开了 阅读(577) 评论(0) 推荐(0)
摘要: 1.视频编码 视频编码是指采用某种算法对视频数据进行压缩,以便在存储和传输时占用更少的空间和带宽。我们平时所看的视频其实都是由大量的图像帧组成的,比如,如果帧率为30fps,则相当于一秒播放了三十个图像,如果把每一张图像帧都完整的保存下来,则占用的空间超乎想象。我们可以计算一下,如果视频的分辨率为1 阅读全文
posted @ 2023-07-12 20:49 故乡的樱花开了 阅读(239) 评论(0) 推荐(0)
摘要: 1.为何要引入Lifecycle? 我首先来举个大家都比较常见的例子:我们在android开发的时候,经常需要在页面的onCreate()方法中对组件进行初始化,在onPause()方法中停止组件,而在页面的onDestroy()方法中对组件进行资源回收工作。这样的工作非常繁琐,会让页面和组件间的耦 阅读全文
posted @ 2023-07-11 21:36 故乡的樱花开了 阅读(473) 评论(0) 推荐(0)
摘要: 1.为何要引入Jetpack呢? 通常来说,一个Android应用程序至少需要一个Activity,当我们开发小型Android程序时,可能会将大部分代码写在Activity/Fragment中,例如业务逻辑,UI控件,数据库的CRUD等。针对小型项目而言,这并没什么问题,维护起来也很方便,但对于中 阅读全文
posted @ 2023-07-10 10:50 故乡的樱花开了 阅读(288) 评论(0) 推荐(0)
摘要: 一.初始化音频重采样器 在音频重采样时,用到的核心结构是SwrContext,我们可以通过swr_alloc()获取swr_ctx实例,然后通过av_opt_set_int()函数和av_opt_set_sample_fmt()函数来设置音频重采样的参数,最后通过swr_init()函数初始化Swr 阅读全文
posted @ 2023-07-05 17:06 故乡的樱花开了 阅读(599) 评论(0) 推荐(0)
摘要: 一.视频格式转换初始化 将视频中的图像帧按照一定比例缩放或指定宽高进行放大和缩小是视频编辑中最为常见的操作之一,这里我们将1920x1080的yuv图像序列转换成640x480的rgb图像序列,并输出到文件。视频图像转换的核心为一个SwsContext结构,其中保存了输入图像和输出图像的宽高以及像素 阅读全文
posted @ 2023-07-04 10:17 故乡的樱花开了 阅读(412) 评论(0) 推荐(0)
摘要: 一.初始化音频滤镜 初始化音频滤镜的方法基本上和初始化视频滤镜的方法相同,不懂的可以看上篇博客,这里直接给出代码: //audio_filter_core.cpp #define INPUT_SAMPLERATE 44100 #define INPUT_FORMAT AV_SAMPLE_FMT_FL 阅读全文
posted @ 2023-07-03 10:58 故乡的樱花开了 阅读(270) 评论(0) 推荐(0)
摘要: 一.视频滤镜初始化 本次代码实现的是给输入视频文件添加水平翻转滤镜,在视频滤镜初始化部分我们可以分为以下几步进行: 1.创建滤镜图结构 视频滤镜功能最核心的结构为滤镜图结构,即AVFilterGraph结构,我们调用avfilter_graph_alloc()函数就可以创建一个滤镜图结构。 2.创建 阅读全文
posted @ 2023-07-01 11:12 故乡的樱花开了 阅读(174) 评论(0) 推荐(0)