【发布时间】:2013-07-31 07:56:43
【问题描述】:
我编写了一个程序,使用 gamekit/bluetooth 将使用压缩 jpeg 的低质量视频从一台 iOS 设备传输到另一台设备。我已经意识到不应该将 gamekit/蓝牙用于此目的(用于小块数据),但它确实可以很好地流式传输 15 个低质量压缩 jpeg/秒,几乎没有延迟。
我的问题是,一旦我提高了从 iOS 设备发送器到 iOS 接收器的质量或帧速率,就会出现延迟或延迟,并且不再是实时的。如果有延迟,我希望发送 iOS 设备以某种方式丢弃帧,以便接收器可以赶上或让接收器忽略积压队列。
在 GameKit 中,我已将会话模式设置为使用 GKSendDataUnreliable 来查看是否有帮助,但无济于事。
如果发生延迟,丢弃帧 (jpeg) 以便 iOS 接收器可以赶上实时的最佳解决方案和正确方法是什么?发送方是否需要停止传输一段时间,或者接收客户端可以做些什么来丢弃累积队列。
我之前也用过 NSStream,虽然使用 wifi 可以提供更大的带宽,但如果传输的数据过多,仍然会出现延迟问题。
提前感谢您的帮助。
【问题讨论】:
-
查看帧队列等的一些代码可能会有所帮助。您可能是正确的,您需要停止传输或丢弃队列中的帧。
标签: ios objective-c bluetooth gamekit nsstream