大体来说:
- 前几天同事突然对我说,摄像头问题很大。
- 我听了一愣:这摄像头多么成熟的技术,各种代码都有,怎么就有问题了?
- 他解释了一番,大意是,实际上摄像头被camera进程完全控制。比如你要录像,就要通过进程通讯,向摄像头抓取。WEB摄像头也是如此。
- 我听了就觉得不可思议:怎么可能?应该是我通过so调用摄像头,直接获取视频。还要通过camera进程通讯?
争论了一番,我是不信的。有这么愚蠢的做法?后来问到板子厂家,说还真是这样。我就被打脸了。
于是我又想了一下,也不知道对不对:
- 摄像头的控制权,实际上只有一个。大体来说可以认为是驱动层。
- 驱动也可以理解为是一个进程。那么其他进程访问摄像头,确实是要通过进程通讯。
- 多个应用打开摄像头,实际上是一种错觉。比如说,两个摄像头设置不同的画面参数,摄像头硬件只有一个,不可能同时支持,最多是切换是再次设置。
- 当然,也可以在模拟出不同的摄像头,获取同样画面后进行加工。显然,你获得的摄像头,实际上是一种错觉。