gun2rin
Новичок
JAVA и PHP. Проблема обновления изображения.
Сначала хотел писать в Оффтоп, потому что тут вопрос с Java скорее. Вобщем если есть знающие Java, я на вас надеюсь.
И так. Имеется Видеосервер, к которому подсоеденина камера охранного наблюдения. Выполняя из браузера такой запрос к серверу: http://<servername>/cct-cgi/mjpg/video.cgi?Video=1&StreamType=Image&Resolution=320x240&Compression=2
получаем кадр изображения... Задача. Вывести кадр в Java Applet и обновлять его с определенной периодичностью. Поскольку заставить java грузить картинку с другого сервера проблема. Я сделал промежуточный php скрипт. Очень простой, тестовый (пока нет времени).
	
	
	
		
Называется он jpeg.php ...
И Апплет на 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);И Апплет на 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);
    }
} 
	            