在Android应用程序中通过蓝牙视频流

问题描述 投票:2回答:1

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

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

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

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

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

任何帮助将不胜感激。

android bluetooth camera video-streaming feed
1个回答
4
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.