💡
原文中文,约5000字,阅读约需12分钟。
📝
内容提要
本文总结了音视频Android面试题,包括SurfaceView与TextureView的区别、MediaCodec的零拷贝渲染、音频低延迟的Fast Path、OpenGL ES的多线程共享上下文,以及H.264视频的颜色问题及其解决方案。
🎯
关键要点
- SurfaceView和TextureView的本质区别在于Surface的独立性和渲染方式。
- SurfaceView适合极致性能和DRM视频播放,因其具备零拷贝特性。
- 使用MediaCodec进行异步解码时,避免直接操作ByteBuffer以实现零拷贝渲染。
- Fast Path是Android音频系统中的低延迟通路,需匹配采样率和缓冲区大小以确保进入该通路。
- OpenGL ES实现多线程共享上下文时,需注意EGL_BAD_ACCESS错误的原因及解决方案。
- H.264视频颜色错乱通常因YUV格式不一致和Stride对齐问题,建议使用Surface输入以提高兼容性。