💡 原文中文,约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输入以提高兼容性。