2009-06-27 3 views

ответ

0

Я не думаю, что это возможно с помощью URLStream, но я думаю, вы могли бы достичь возможности паузы/возобновления, используя Socket.

Для этого требуется настройка правильных политик сокетов, что представляет собой небольшую проблему, и сервер принимает диапазоны байтов. См. byte serving и RFC2616.

Идея состоит в том, что вы бы подсчитали количество байтов, которые вы прочитали из текущего ответа. Когда вы хотите сделать паузу, вы должны закрыть соединение. Для возобновления повторного подключения снова нужно отправить запрос HTTP GET, указав диапазон байтов, который начинается с подсчета байт, который вы сохранили (т. Е. Вы поднимаете место, где вы остановились).

Имейте в виду, что это всего лишь идея. Я не уверен, что закрытие и повторное открытие соединений - наиболее оптимальное решение. Это, вероятно, не ракетостроение, но требует некоторой работы по его правильному осуществлению. И, как я уже сказал, я думаю, что что-то подобное должно работать, но я сам не пробовал, поэтому я не уверен на 100%. Но, может быть, стоит попробовать.

+0

Интересная идея, но имейте в виду: использование сокета означает, что SWF не будет работать через прокси-серверы. –

2

Можно приостановить/возобновить URLStream, используя метод, описанный here. К сожалению, этот метод будет работать только в AIR.

Если вы используете AIR, вам все еще нужно проверить, что заголовок Ответ отправлен обратно с сервера включает в себя:

Accept-Ranges: bytes 

Если у вас есть, что вы должны быть в состоянии использовать тот же метод ,

+0

+1 - если у вас есть какие-либо сомнения по ссылке, у меня есть такой подход, работающий над приложением. – eglasius