Я настраиваю UIWebView
для отображения содержимого веб-камеры через URL-адрес, который извлекает MPJEG -ручей.
Я обнаружил, что если бы я хотел переключиться на другую камеру, это выглядело бы более плавно, если бы я не сбрасывал все содержимое UIWebView
, а вместо этого устанавливал функцию javascript на странице, которую я загружал в нее, чтобы замените содержимое изображения, например:
<img id='iImage' src='about:blank'>
<script type='text/javascript'>
function show(url)
{
iImage.src = url;
}
</script>
Если бы я этого не делал, каждый раз, когда я переключался на новый URL-адрес, UIWebView
становился белым на секунду или две, пока новый контент не был готов к отображению, с приведенный выше код просто заменяет содержимое напрямую, без белого цвета.
Однако, если я переключаюсь туда и обратно между двумя видеопотоками, в какой-то момент я получаю ошибку в UIWebView
, и методом проб и ошибок я выяснил, что это происходит в 4-й раз, когда я показываю один и тот же видеопоток в вид. Если я попытаюсь открыть 4 видеопотока во вкладке браузера -, 4-й застрянет в цикле загрузки, пока я не закрою один из трех предыдущих.
Это наводит меня на мысль, что:
src
в теге <img...>
не закрывает предыдущий потокМожет это быть связано с keepalive? Может ли система браузера webkit сохранить предыдущие потоки, даже если я перестал показывать их в теге <img...>
?
В основном, чтобы воспроизвести, я могу сделать это:
UIWebView
wv.EvaluateJavascript("show(url)")
На 4-м вызове я получаю синий вопросительный знак посередине.
Может ли -остаться в живых быть виновником? И если да, то могу ли я это контролировать?