2015-11-17 85 views
2

我正在开发一款基本上通过蓝牙连接2台智能手机的Android应用程序。连接的目的是控制一台设备摄像机(从设备)并与另一台设备(主设备)拍摄照片/视频。Android应用程序通过蓝牙进行视频流式传输

我在设备之间创建了蓝牙连接,一个充当客户端,另一个充当服务器。服务器打开相机并侦听客户端是否正在进行任何操作(拍摄,缩放等)。

现在,问题是服务器(奴隶)如何显示客户端(主)他的相机饲料?

我可以在设备之间传输字节,并且在阅读了关于这个问题的一些文章后,我认为字节应该被压缩成帧(由从设备),然后作为图像打开并显示在屏幕上(在主设备上) 。

任何人都知道什么是最好的方式来做到这一点?任何推荐的协议或API?不同方法有哪些优缺点?

任何帮助将不胜感激。

+0

同样在这里,让我知道你是否找到了解决办法。谢谢 –

+0

你可以请张贴示例代码你怎么实际上给命令打开相机应用程序的奴隶?这将节省我的时间。提前致谢。 –

回答

2

通常蓝牙发送图像帧非常慢,但不需要发送每一帧。你将面临的一个问题是帧碰撞。蓝牙套接字将您的数据(帧)作为字节数组发送。因此,在大多数时间从另一端接收数据时,前一帧和当前帧的字节将发生冲突。所以你需要确保第一帧被远程手机接收并成功处理。远程移动设备正在处理时创建的帧不应该存储在缓冲区中以供稍后发送,而应该忽略它们(不应发送)。有些框架可能会丢失,但是您将以实时动态形式工作。现在,android手机将根据相机分辨率创建预览的大框架。所以你只需要发送小尺寸的画面,在显示器的剩余空间中可以显示相机控制。

我已经在我的Github回购中发布了一个示例项目。 Bluetooth Camera