JAVA и PHP. Проблема обновления изображения.

gun2rin

Новичок
JAVA и PHP. Проблема обновления изображения.

Сначала хотел писать в Оффтоп, потому что тут вопрос с Java скорее. Вобщем если есть знающие Java, я на вас надеюсь.

И так. Имеется Видеосервер, к которому подсоеденина камера охранного наблюдения. Выполняя из браузера такой запрос к серверу: http://<servername>/cct-cgi/mjpg/video.cgi?Video=1&StreamType=Image&Resolution=320x240&Compression=2
получаем кадр изображения... Задача. Вывести кадр в Java Applet и обновлять его с определенной периодичностью. Поскольку заставить java грузить картинку с другого сервера проблема. Я сделал промежуточный php скрипт. Очень простой, тестовый (пока нет времени).
PHP:
header("Content-type: image/jpeg");

$jpeg_file=fopen("http://172.16.10.14/cct-cgi/mjpg/video.cgi?Video=1&StreamType=Image&Resolution=320x240&Compression=2","rb");

fpassthru($jpeg_file);
Называется он jpeg.php ...

И Апплет на Java:
PHP:
import java.applet.Applet;
import java.awt.*;


public class ShowFrame extends Applet implements Runnable{
  private Image myFrame; 
  Thread animator;
  int delay;
  int frame;

  public void init() {      
    setBackground(Color.white);
   String str = getParameter("fps");
	int fps = (str != null) ? Integer.parseInt(str) : 10;
	delay = (fps > 0) ? (1000 / fps) : 100;
   
   
  
  }

 
  public void start() {
	animator = new Thread(this);
	animator.start();
    
	}
  
  
  public void run() {
     long tm = System.currentTimeMillis();
	 while (Thread.currentThread() == animator) {
	  
	  myFrame = getImage(getDocumentBase(),
                           "jpeg.php"); //проблемная строка 
	    repaint();

	
	    try {
		
		Thread.sleep(delay);
	    
		
		} catch (InterruptedException e) {
		break;
	    }

	}
    }
 
    


    public void paint(Graphics g) {
	g.drawImage(myFrame, 0, 0, null);
    }
}
Аплет берет изображение предоставляемое php скриптом и выводит. Проблема вся в том, что он выводит только один кадр и перерисовывает его. А само изображение не обновляет! Буду очень благодарен за помощь.
 

Rezec

По пиву? (socket80)
Джава тесно связана с бровзером. Все картинки из апплета кэшируются. В данном случае (джаву не знаю) если с джавой все в порядке, можно поколдовать над кешированием.
 

gun2rin

Новичок
Да. Я уже это понял. Но я Java не все в порядке, думаю можно как-то заставить ее обновлять кадры. Но как.... Разбираюсь пока.

-~{}~ 14.09.04 13:37:

Заюзал метод flush(). Пошло.
 

Rezec

По пиву? (socket80)
Все-таки проблема была в кэше (в одном из них).
 
Сверху