这就是我想要实现的目标。 我有2个Android设备,我想通过蓝牙访问第二个摄像头并在第一个上显示预览。
任何提示如何做到这一点?
基本上我想通过蓝牙获得另一个Android设备的相机实例。
答案 0 :(得分:5)
简答:
您无法通过这种方式获得直接实例。那就是 - 你不会得到一个你能正常使用的相机对象。相反,你将不得不伪造相当数量。
长答案:
您必须在两台设备之间建立蓝牙客户端/主机关系。在您完成之后,您将设置一个作为"控件"这种关系的方面,另一个作为相机。我们将这些称为1和2。
1将有一个UI(拍照按钮等)。按下按钮时,命令将沿着该行向下移动到2。
然后2将在命令请求时执行,并将一些数据传回1。
在拍照的情况下:
用户按下1中的拍照按钮.1发送命令"拍摄照片"到2. 2然后使用此命令根据您的指示拍摄照片。 2然后通过蓝牙将该图片的文件结果发回。
进行图像预览 - 在您实际点击之前看到图像是什么?#34;捕获" - 我觉得你不会有太多运气。您可以按照上述模式执行此操作,但我怀疑这将是一次顺利的体验。
编辑:
经过与Alex讨论的一些讨论,以及对此的一些思考,我有一些预览的想法。
担心:
如果您可以从2到1获得10-15 fps左右,则可以进行合理的预览。根据您的需要/使用情况,可能会更少。
您需要实施
Camera.PreviewCallback:
onPreviewFrame(byte[] data, Camera camera); :
http://developer.android.com/reference/android/hardware/Camera.PreviewCallback.html#onPreviewFrame(byte [],android.hardware.Camera),并使用
注册您的回调相机
setPreviewCallback(Camera.PreviewCallback cb)
您需要缩减采样(可能,我不确定onPreviewFrame中提供的内容的大小)以保持较低的内容大小。
4)发送。
我不完全确定这会有效,因为我还没有测试过,但那是我看到的最直接的路线。
另一种选择:
进入JNI并处理整个事情。几乎可以肯定,在速度方面,这项工作可以达到这个水平。关于如何做到这一点,我有一些模糊的想法,但这将是一项相当大的工作。