Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
apollox
5 / 0 / 0
Регистрация: 04.09.2012
Сообщений: 7
05.01.2014, 21:27     Как правильно обновлять картинку с ip камеры #1
Доброе время суток, учусь программировать под андроид, пытаюсь написать приложение для получение картинки с 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/");
___

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

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

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 21:27     Как правильно обновлять картинку с ip камеры
Посмотрите здесь:

Android GridView - как не обновлять ячейки, которые не видны в данный момент
Как зажечь вспышку от камеры? Android
Как записать/прочитать картинку? Android
Android Как передать картинку через интент
Android Как сделать картинку фоном?
Android ImageView, как наложить картинку на картинку?
Как прочитать картинку с сервера по http? Android
Не обновлять айтемы в адаптере когда скроллим список Android
Android Как заставить вращаться картинку кодом?
Android Как отключить автоматическое сохранение снимка с камеры в галерею
Android Как правильно обновлять Android Studio
Android Как сделать меняющуюся картинку в header

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru