Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 0 / 0
Регистрация: 04.09.2012
Сообщений: 8

Как правильно обновлять картинку с ip камеры

05.01.2014, 21:27. Показов 1160. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток, учусь программировать под андроид, пытаюсь написать приложение для получение картинки с ip-камеры.
Приложение должно обновлять изображение с заданным интервалом и корректно отлавливать отсутствие соединения.
Пока сделал так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class MainActivity extends Activity implements OnClickListener {
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);    
   
    Button btnCamera = (Button) findViewById(R.id.btnCamera);
    btnCamera.setOnClickListener(this);   
  }
  
    public void onClick(View v) {
     Timer timer = new Timer();  
     timer.schedule(new TimerTask() {
         @Override
          public void run() {           
              MainActivity.this.runOnUiThread(new Runnable() {                      
                  public void run() {            
                    final WebView webView = (WebView) findViewById(R.id.webView);
                    
                    webView.setWebViewClient(new WebViewClient() {
                       public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                         webView.setVisibility(View.INVISIBLE);
                       }
                       public void onLoadResource (WebView view, String url) {
                         webView.setVisibility(View.VISIBLE);
                       }                                   
                     });
                    
                    webView.loadUrl("http://ip:port/path_to_camera_image/");                     
                 }
              });
          }
     }, 0, 5000);
    }  
}
Что мне не нравится:

Если задать небольшой интервал обновления, например пол-секунды, то может получиться так, что время необходимое для загрузки изображения будет больше чем интервал.
Тогда получится что картинка не успевает загрузиться, а ее уже опять таймер тянет.

К тому же почему-то при отсутствии соединения с камерой сначала все же мелькает страница 404 - страница не найдена, а потом уже срабатывает webView.setVisibility(View.INVISIBLE).
Это нежелательно, потому что при этом высвечивается строка запроса с параметрами подключения к камере.

Насколько я понимаю, упрощенно должно быть так:
только когда картинка полностью загрузилась (или не загрузилась), она вызывается по новой с заданным интервалом.
Я делал такое приложение на Javascript, там я знаю как это сделать, а под андроид не понимаю

___
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.setVisibility(View.INVISIBLE);
setTimeout(webView.loadUrl("http://ip: port/path_to_camera_image/",interval);

}
public void onLoadResource (WebView view, String url) {
webView.setVisibility(View.VISIBLE);
setTimeout(webView.loadUrl("http://ip: port/path_to_camera_image/",interval);
}
});

webView.loadUrl("http://ip: port/path_to_camera_image/");
___

Пардон, что код обычным текстом, иначе нужные строки движок форума не выделяет.

Что мне нужно написать вместо выделенных строк, или я вообще не в том направлении копаю?

Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2014, 21:27
Ответы с готовыми решениями:

Как правильно обновлять картинку captchI ?
в php коде есть стандартная функция автоматического создания рандомной картинки из заданных букв и чисел при нажатии на регистрацию...

Jpanel. Как масштабировать и обновлять картинку?
В центре JFrame есть JPanel c отрисованной картинкой. Она большая, я думаю привязать ее к наименьшему краю JFrame и через...

Как обновлять картинку в WinAPI чаще, чем срабатывает таймер?
У меня таймер срабатывает каждые 200 ms (5 раз в секунду). Как, не загружая ядро процессора на много %, перерисовывать элемент картинки...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2014, 21:27
Помогаю со студенческими работами здесь

PictureBox, вывод графики по hDC, как обновлять картинку при затирании
Всем доброго времени суток среда - MVS 2013 Рисую с помощью библиотеки SR2D (автор Mikle) Вывод графики идет в PictureBox по hDC ...

Как правильно обновлять свои OCX
При добавлении в свою OCX MyOcx.ocx новых контролов при последующей попытке подцепить ее через Refrences к новому проекту часто получаю...

Как правильно обновлять Android Studio
Здравствуйте коллеги. При обновлении студии создаются старые копии версий(см. рис.) 1)Можно ли их удалить и помешает ли это работе...

Как правильно обновлять элемент из другого потока?
В отдельном потоке подключаюсь с БД ... event_console?.Invoke("Getting Connection ..."); ... try { ...

Как правильно обновлять токен на стороне сервера?
У продукта, с которым необходима интеграция, есть API, который по кредам дает токен, рефреш токен и когда они экспайрятся. Мы со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru