tach,
geht das ? php innerhalb von Java
<script type = "text/javascript">
var frameLoad; // holds the load_rfame function
var interval;
interval = 1000;
window.clearTimeout(Update);
Update(0);
function Update(count) {
count++;
document.getElementById("Cam4").src = "http://10.0.0.45/record/current.jpg?" + count;
frameLoad = window.setTimeout(function(){Update(count)},interval);
}
</script>
so funktioniert das einwandfrei
wenn ich einfüge
interval = <?php getvalue(21751);?>; geht es nicht mehr !
Aktualisiere meine Webcam damit - jede Sekunde das Bild neu laden
Habt ihr ne Idee ?
gruß
Christian
paresy
1. Juli 2009 um 11:34
2
Auf den ersten Blick fehlt vor dem GetValue ein echo .
paresy
danke … so gehts
leider werden die werte aber im reload nicht aktualisiert ?
erst wenn ich die seite neulade …
ne idee ?
so schauts jetzt aus
<script type = "text/javascript">
var frameLoad; // holds the load_rfame function
var interval;
interval = 1000;
window.clearTimeout(Update);
Update(0);
function Update(count)
{
interval = <?php echo getvalue(21751)?>;
count++;
document.getElementById("Cam1").src = "http://10.0.0.40/record/current.jpg?" + count;
document.getElementById("Cam2").src = "http://10.0.0.43/record/current.jpg?" + count;
document.getElementById("Cam3").src = "http://10.0.0.44/record/current.jpg?" + count;
document.getElementById("Cam4").src = "http://10.0.0.45/record/current.jpg?" + count;
frameLoad = window.setTimeout(function(){Update(count)},interval);
}
</script>
paresy
1. Juli 2009 um 12:53
5
So hast du es ja auch programmiert. Erst bei einem Reload wird die PHP Funktion neu aufgerufen. Das Javascript läuft nur im Browser uns hat nichts mehr mit PHP zu tun.
paresy
tja, kann man das irgendwie auf php umsetzen … bin da absoluter newbie
ich kann natürlich die seite im z.b. 5s takt aufrufen, aber dann flackert das kurz im browser
Horst
1. Juli 2009 um 13:42
7
<html><head>
</head>
<body>
<img src="" id="Cam1"><br />
<img src="" id="Cam2"><br />
<img src="" id="Cam3"><br />
<img src="" id="Cam4"><br />
<script type = "text/javascript">
function updateCams()
{
document.getElementById("Cam1").src = "http://10.0.0.40/record/current.jpg?t=" + new Date().getTime();
document.getElementById("Cam2").src = "http://10.0.0.43/record/current.jpg?t=" + new Date().getTime();
document.getElementById("Cam3").src = "http://10.0.0.44/record/current.jpg?t=" + new Date().getTime();
document.getElementById("Cam4").src = "http://10.0.0.45/record/current.jpg?t=" + new Date().getTime();
}
updateCams();
window.setInterval(function () { updateCams(); }, <?php echo GetValue(21751)?>);
</script>
</body>
</html>
So werden die Bilder aktualisiert. Das Intervall wird allerdings nur beim Refresh neu ausgelesen. Willst Du das regelmäßig aktualisieren musst Du mit Ajax arbeiten. Dazu kannst Du Dir mal http://www.ip-symcon.de/forum/f3/problem-sajax-3422/index2.html#post61594 ansehen.
danke horst,
so hatte ich das ja auch schon …
dabei ist mir aber noch was neues aufgefallen … vom internet aus gehts natürlich nicht, da man natürlich ohne vpn nicht auf die lokalen ip zugreifen kann.
habe gerade mal versucht per script die bilder auf den server zu kopieren
das funzt und dann auch vom internet, auf die geschwindigkeit ist bescheiden.
und das erzeugt nebenbei noch ne menge traffic
ganz glücklich bin ich damit noch nicht
Horst
1. Juli 2009 um 16:51
9
Du kannst die Bilder über ein PHP-Image-Proxy-Skript leiten. Sollte ungefähr so funktionieren (ungetestet):
<?php
header("Last-Modified: ".gmdate("D, d M Y H:i:s", time())." GMT");
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: pre-check=0, post-check=0, max-age=0");
header("Content-Type: image/jpeg");
readfile($_GET['image']);
?>
Hallo!
Vielleicht hilft der Lösungsansatz? Hier wird der Div-Tag mit der ID „reload“ aktualisiert, jede Sekunde…
index.php
<?php
$start = 1;
$timeout = 1000;
?>
<script type="text/javascript">
setTimeout("TimerEvent()",<?php echo $timeout; ?>);
function TimerEvent()
{
$(document).ready(function(){
$("#reload").load("loaderContent.php",{timeout:<?php echo $timeout; ?>});
});
}
</script>
<div id ="reload">
</div>
loaderContent.php
<?php
$timeout = $_POST["timeout"];
if (isset ($_POST["counter"]))
{
$counter = $_POST["counter"];
}
else
{
$counter = 0;
}
$timeout = $_POST["timeout"];
$counter++;
?>
<script type="text/javascript">
setTimeout("TimerEvent()",<?php echo $timeout; ?>);
function TimerEvent()
{
$(document).ready(function(){
$("#reload").load("loaderContent.php", {"counter":<?php echo $counter; ?>,"timeout":<?php echo $timeout; ?>});
});
}
</script>
<div id = "reload">
<?php
echo $counter;
//var_dump ($_POST);
?>
</div>
<div id ="reload2">
<?php
echo $counter;
//var_dump ($_POST);
?>
</div>