ios - 使用 watchOS 2,我可以多快在 iPhone 和 Apple Watch 之间发送 UIImage?

标签 ios swift bluetooth apple-watch watchos-2

我正在构建一个 Apple WatchOS 2 应用程序,该应用程序使用生成的图像进行连续动画处理。

因为这些不能与应用程序捆绑,所以它们是在 InterfaceController 中生成的,然后设置为在 watch 上显示,如下所示:

self.imageGroup?.setBackgroundImage(self.image)

到目前为止,我一直以每秒 1 张图像的速率生成这些图像,这感觉相当安全,但显然给出了 1fps 的非常低的帧速率。现在我想知道这可以改进多少?

我测量了 UIImages 本身的生成速度,这是相当低的 0.017 秒。这些图像的大小相当一致,也都在 10000 字节左右。如果没有进一步的延迟,那会给我一个更可接受的性能,大约 58fps。

我的问题是 - 是否存在蓝牙与手机通信的典型速度,我可以将其与图像大小进行比较以确定实际的帧速率?

或者 - 我假设在发生这种情况时调用 setBackgroundImage 不会阻塞主线程。有什么方法可以让我知道实际设置需要多长时间?

最佳答案

Apple 没有记录这种速度,因为它在很大程度上取决于连接强度。由于用户不需要将 watch 和手机放在一起,因此用户距离越远(或手机和 watch 之间的物体类型越远),传输速度就越慢。

你的图像是 10 KB,你想每秒发送 58 张图像,所以每秒 580 KB 或 .58 MB?数据量听起来并非不切实际(尽管这会耗尽电池电量)。但是,两个设备之间的每次网络调用都会产生一些开销。这些图像需要实时发送吗?否则,如果您最初可以延迟 1-2 秒,然后将一组 58 张图像一起批处理,您可以将它们在 watch 上制作动画,那么您可能会获得更好的性能。您每秒只会有 1 个网络调用,这对于设备来说比每秒 58 个调用更易于管理。

关于ios - 使用 watchOS 2,我可以多快在 iPhone 和 Apple Watch 之间发送 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32527366/

相关文章:

android - 如何在 Android 上以编程方式配对和连接 HID 蓝牙设备(蓝牙键盘)

android - 简单的蓝牙数据接收器Android

ios - AVPlayer UITapGestureRecognizer 不工作

ios - SpriteKit 横向方向不起作用

ios - Swift MKAnnotationView maskToBounds 抛出错误

swift - if 语句中一行的连续语句

objective-c - 捏 UIScrollView 时发生奇怪的崩溃

ios - 从 XML 设置按钮操作

ios - viewController 的 TopAnchor 在 iMessage Extension 中的演示模式之间的变化

Android等待启动BluetoothSco SCO_AUDIO_STATE_CONNECTED