gpt4 book ai didi

ios - 有没有办法测量 iOS 中的延迟?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:56 25 4
gpt4 key购买 nike

我要解决的问题是我希望有一种方法来测量网络延迟并在发生高延迟情况时通知用户。我的应用程序允许用户从在线源流式传输音频或视频内容,虽然在我的测试中可以在 3g 甚至 EDGE 速度下播放,但延迟峰值可能会导致可用性中断。发生这种情况时,我希望能够提醒用户这些问题的原因。

我已经回头查看 Apple 的 Reachability 示例代码,但仍然无济于事。我将回顾一年前提交的问题 (http://openradar.appspot.com/13982938)

假设我从强连接开始,我可以在网络链接调节器中设置一个自定义配置文件,该配置文件将丢弃 100% 的已发送数据包,并且示例应用程序中的可达性代码不会改变肯定的结果。即使没有数据包通过,它仍然告诉我我有连接。

为了获取此信息,我可以通过 KVO 或其他方式收听任何可靠的值吗?

最佳答案

最简单的方法(可能也是唯一有效的方法)是在发送请求时存储时间值,并在收到响应时评估延迟。您可以查看如何 AFNetworkActivityLogger在这里解决这个 https://github.com/AFNetworking/AFNetworkActivityLogger/blob/master/AFNetworkActivityLogger/AFNetworkActivityLogger.m

对你来说最重要的台词是

objc_setAssociatedObject(notification.object, AFNetworkRequestStartDate, [NSDate date], OBJC_ASSOCIATION_RETAIN_NONATOMIC);

发送请求时

NSTimeInterval elapsedTime = [[NSDate date] timeIntervalSinceDate:objc_getAssociatedObject(notification.object, AFNetworkRequestStartDate)];

收到响应时。

如何将此逻辑集成到您的代码中取决于您使用什么来获取流式视频。

关于ios - 有没有办法测量 iOS 中的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com