Android音视频开发框架(下)
💡
原文中文,约12100字,阅读约需29分钟。
📝
内容提要
本文介绍了Android音视频开发结构中的音视频读取和解码过程,包括使用MediaExtractor类进行音视频读取和使用MediaCodec类进行音视频解码。音视频播放依靠TextureView和AudioTrack等组件,音视频同步通过比较解码出来的帧的时刻戳和独立时刻轴的时刻戳来实现。文章还提到了播放/暂停、获取预览图和播放进度条等功能。
🎯
关键要点
- 文章介绍了Android音视频开发结构中的音视频读取和解码过程。
- 音视频读取依赖于MediaExtractor类,主要方法包括设置数据源、获取轨迹数、选择轨迹等。
- MediaExtractor用于从文件中提取编码过的音频和视频信息。
- 音频和视频的读取在独立线程中进行,操作可以进行封装以简化使用。
- 音视频解码使用MediaCodec类,视频和音频的解码过程类似,但输出方式不同。
- 视频解码通过SurfaceView或TextureView进行,音频解码则在后台进行。
- 音视频播放依赖于TextureView等组件,音频播放依赖于音频设备。
- 音视频同步通过比较解码帧的时刻戳与独立时刻轴的时刻戳来实现。
- 暂停和恢复播放时需要记录暂停时长以保持音视频同步。
- 文章总结了Android音视频开发的全流程,包括创立、编码、保存、提取、解码和播放。
➡️