前言
本文分析MediaCodec.h层的状态机,下篇介绍ACodec状态机,基于7.0代码。
MediaCodec状态介绍
During its life a codec conceptually exists in one of three states: Stopped, Executing or Released.
- The Stopped collective state is actually the conglomeration of three states: Uninitialized, Configured and Error,
- the Executing state conceptually progresses through three sub-states: Flushed, Running and End-of-Stream.
- the Release state
Stopped 状态
Stopped 状态具有三个子状态:Uninitialized、Configured 和 Error。
-
有三种方式可以使 MediaCodec 进入 Uninitialized 子状态:
使用工厂方法创建 MediaCodec 实例时,MediaCodec 处于 Uninitialized 状态
处于 Executing 状态时,调用 MediaCodec.stop() 方法可以使 MediaCodec 返回到 Uninitialize