如何在Android上正确访问LIVE相机数据? Skype如何做到这一点?
作者:互联网
我见过很多类似的问题,但没有人给出100%答案:
> Camera.PreviewCallback不保证所有设备都需要帧率
> MediaRecorder可能会在某些设备上缓冲音频/视频(在将其写入文件/本地套接字之前)
> Native C/C++ API不公开,每个人都强烈反对使用它.
Skype如何做到这一点?在Android上访问实时视频帧的正确方法是什么?
解决方法:
在3.0之前的Android版本上,预览回调是唯一的选择;请确保使用setPreviewCallbackWithBuffer方法,效率更高.
在Honeycomb或更高版本中,您还可以使用通过setPreviewTexture的GPU路径.这将使预览流直接进入GPU纹理,这更适合某些应用程序.
尝试使用内部C/C++ API不会获得任何巨大的性能提升,并且保证在将来的版本中更改,因此我不建议使用它.
确保从支持的帧速率列表中将预览帧速率设置得尽可能高.
如果您需要高而稳定的帧速率,您还可以尝试在较新的设备上将recording hint设置为true.
不幸的是,这两种方法都不能保证提供稳定的输出帧速率,这非常依赖于场景条件和设备自动曝光算法的细节.这是我们希望将来能够改进的.
但是,如果上述两个选项中的一个不是Skype等人使用的话,我会非常惊讶.
标签:android,video-streaming,android-camera,skype 来源: https://codeday.me/bug/20190703/1371909.html