alonealice

个人博客

Android Media API 的介绍(2)

MediaFormat 封装描述媒体数据格式的信息,无论是音频还是视频。媒体数据的格式被指定为字符串/值对。 KEY_MIME:格式的类型 KEY_MAX_INPUT_SIZE:可选,输入数据缓冲区的最大大小 KEY_BIT_RATE:仅编码器,所需比特率(以比特/秒为单位) 视频格式具有以下键: KEY_WIDTH:描述视频格式的内容的宽度的键。 KEY_HEIGHT:描述视频格式的内容的......

Android Media API 的介绍(1)

Android系统已经提供了对视音频的强大支持,这边先介绍几个和视音频相关的类,通过这几个类的组合使用,可以实现很多音视频处理的相关功能,下面就对这几个类进行简单介绍。 12345678MediaMetadataRetriever::用来获取视频的相关信息,例如视频宽高、时长、旋转角度、码率等等。MediaExtractor::视音频分离器,将一些格式的视频分离出视频轨道和音频轨道。Medi......

MediaCodec基础

MediaCodec是一个Codec,通过硬件加速解码和编码。 MediaCodec 的作用是处理输入的数据生成输出数据。首先生成一个输入数据缓冲区,将数据填入缓冲区提供给 codec,codec 会采用异步的方式处理这些输入的数据,然后将填满输出缓冲区提供给消费者,消费者消费完后将缓冲区返还给 codec。 MediaCodec的数据 MediaCodec 接受三种数据格式:压缩数据,原始......

RTP和RTCP

RTP全名实时传输协议,用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。其相关的配套协议RTCP,实时传输控制协议。RTP为端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。 RTP用于在单播或多播网络中传送实时数据,主要的场景有: 简单的多播音频会议:语音通信通过一个多播地址和一对端口来实现。一个用于音频数据,另一个......

H265的原理

H.265又称为HEVC,是作为继 H.264 之后的新一代视频编码格式,除了能减少普通视频 50% 的码率,缓解网络传输压力外,同时也是 4K 高清视频和 VR 直播最合适的选择。 H.265 的优势 H.265 对比 H.264 有更高的压缩比,H.265 全新的编码方式有效提升了视频压缩率,以相同的视频质量为基准,H.265 编码技术相比 H.264 编码技术能够在视频容量减少大约 3......

H264简介和原理

什么是H264 H264其实就是一种视频压缩的算法,它是目前所有的视频压缩技术中运用最广泛,最流行的,普遍运用在各种视频播放的应用和服务中。对比其他的压缩标准,它主要有两大优势,一是网络亲和性,它可以适用于各种传输网络;二是更高的视频压缩比,对比H.263和MPEG-4,约为它们的 2 倍。 H264主要采用了几下几种方法对视频数据进行的压缩:帧内预测压缩、帧间预测压缩、整数离散余弦变换和C......

Paging:分页库

Paging是Google官方推出了一个新的分页组件。 添加依赖 123implementation "android.arch.paging:runtime:1.0.1"//Paging对RxJava2的原生支持implementation "android.arch.paging:rxjava2:1.0.1" 使用 创建PageKeyedDataSource,用以获取数据源: 12345......

Navigation的使用

Google官方的描述: 今天,我们宣布推出Navigation组件,作为构建您的应用内界面的框架,重点是让单 Activity 应用成为首选架构。利用Navigation组件对 Fragment 的原生支持,您可以获得架构组件的所有好处(例如生命周期和 ViewModel),同时让此组件为您处理 FragmentTransaction 的复杂性。此外,Navigation组件还可以让您声......

Lifecycle使用和原理

Lifecycle 是官方提供的架构组件之一,是具有生命周期感知能力的组件。也就是说,我们能在 Activity 或者 Fragment 的生命周期发生变化的时候得到通知 依赖 12implementation "android.arch.lifecycle:livedata:1.1.1"annotationProcessor "android.arch.lifecycle:compiler......

CameraX简单使用

CameraX实际上还是用的Camera2的代码,但是它对调用API进行了很好的封装,使用起来对比直接Camera2更加的方便。同时使用需要绑定lifecircle,能够自动管理生命周期。 添加依赖 1234implementation "androidx.camera:camera-core:1.0.0-rc01"implementation "androidx.camera:camera......