Android应用中的蓝牙视频流

时间:2015-11-17 17:17:14

标签: android bluetooth camera video-streaming feed

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

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

现在,问题是服务器(从服务器)如​​何向客户端(主服务器)显示他的相机提要?

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

任何人都知道最好的方法是什么?任何推荐的协议或API?不同方法的优缺点是什么?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

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

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