Java多线程之间的加锁方式 banner

Java多线程之间的加锁方式

Java多线程在实际开发中是应用非常广泛的,主要场景就是在需要多个任务需要同时执行的时候,并且线程中的数据是可以共享的,这也为多线程之间的协作奠定了基础。 在多线程场景中,最容易出问题的就...
Java泛型 banner

Java泛型

Java泛型是我们平常开发中经常遇到的,尤其是在一些框架中。使用泛型,我们可以写出通用的代码,来适配各种环境,例如可以通过泛型编码一个方法或类,使其可以接受不同类型的参数,而不需要编写各种重载方法等。
在Compose中使用Navigation banner
FFmpeg解码视频YUV banner

FFmpeg解码视频YUV

一个视频文件通常包含两个数据流,一个是音频流,一个是视频流,我们解封装就是为了拿到这两个流。但是这两个流通常都是经过高度压缩后的数据,如果我们想要将其播放出来,就需要对数据流进行解压缩,即解码。
FFmpeg解码音频PCM banner

FFmpeg解码音频PCM

我们知道使用FFmpeg解封装就是从音频中不断地读取AVPacket,但读取的packet仍是压缩后的数据,如果我们想要播放,还必须要将其解压成原始的...
FFmpeg解封装与重封装 banner
FFmpeg编译so库文件 banner

FFmpeg编译so库文件

FFmpeg是一个音视频库,是使用C语言开发的,目前在各个行业都应用很广。在Android中,也通常都是使用其作为音视频播放和处理方案,当然为了更适配...
View自定义回弹动效 banner
Kotlin协程的实现 banner

Kotlin协程的实现

我们了解过协程的使用,通过launch和async创建协程,也知道协程是个挂起恢复的框架。我们可以简单理解它是一个线程调度框架,可以方便切换线程,但这只是它的一种使用方式,它最...
SharedFlow、StateFlow、SafeFlow的区别 banner