2015-10-25 7 views
0

Итак, я был сброшен с очень сломанной и устаревшей базой кода. Меня спрашивают, однако, исправить только одну ошибку с задержкой, которая возникает, когда сообщение отправляется между двумя устройствами.Задержка с растровым интерфейсом Multipeer

Приложение предназначено для потоковой передачи аудио на несколько устройств и воспроизведения их сразу. Очевидно, что проблема возникает, когда хост отправляет сообщение «играть» и начинает играть сам. Это сообщение воспроизведения задерживается на 3 секунды, и, следовательно, все клиенты не синхронизированы.

Я попытался отправить CFAbsoluteTimeGetCurrent(); значение для клиентов, где они затем работают с задержкой, но часы устройства очень ненадежны, и я часто получаю отрицательные различия во времени, несмотря на то, что, очевидно, был положительным.

Любая идея о том, как я могу бороться с этим? И прежде чем предложения об изменении метода целиком, есть мало времени.

ответ

0

Вы отправили сообщение SYN вместе с локальной меткой времени, а затем за каждый ответ отметьте метку времени как сообщение ACK? Вы можете различать текущее время и время возврата и половину этого времени, чтобы получить латентность.

Источник: Я сделал это.