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