2012-11-01 13 views
5

Birden fazla çıkışa sahip olan, biri jpg resmi olan bir Axis kameram var. Bu görüntü, yüklediğiniz anda fotoğraf makinesinden alınmıştır. Tüm sayfayı yeniden yüklemeye gerek kalmadan görüntünün yeniden yüklenmesi için (30 saniyede bir) bir yol uygulamak isterim, ancak boş bir ekrana sahip olmaktan kaçınmak için kodun görüntüyü güncellemeden önce tam olarak indirmesini istiyorum.jQuery/ajax ile görüntü besleme yenilemesi

Etrafımı okudum ve bulduğum en yakın şey bu mesaj Using AJAX/jQuery to refresh an image idi ama fark ettiğim resim beslemesinin gerçek kameradan kendisinin bir php dosyası olmaması. Bu çalışmayı url'mle çalışmak için birkaç yol denedim ama javascript bilgisinin eksikliğinden dolayı başarısız oldum.

Ben görüntüyü yukarı çekmek için şu anda kullanıyorum kod sadece basit bir görüntü etikettir ...

<img src="[camera ip]/jpg/1/image.jpg">

ve tarayıcı penceresini yenileyin herhangi seferindeki bir anlık verir geçerli video akışı.

Herhangi bir yardım büyük takdir!

Selamlar,
Javier

+0

tamam, bir örnek verebilir misin? her 30 saniyede farklı bir resim mi yüklüyor? Kodun nasıl görünmesini istediğinizi açıklayın – Ibu

+0

Çekeceğiniz tüm görüntülerin biçimi nedir? Fotoğraf makinesi aynı image.jpg dosyasını güncellemeye devam ediyor mu? –

+0

Görüntü beslemesi hiçbir zaman değişmez, her zaman orijinal gönderide sağladığımla aynıdır ve tarayıcıyı yenilediğinizde size yeni bir görüntü verir ancak 30 saniyelik aralıklarla tutmaya karar verdim. Bu, sağladıkları rastgele bir görüntü değil, kameranın şu anda aktığı şeyin sadece bir görüntüsü. – Javier

cevap

2

bu karşı test edilecek, ancak bu sizin için hile gerektiğini düşünüyorum ... ya da en azından gerçekten yakın olsun

<script> 
// URL to your cam image 
var cam_image = 'http://absdev.ws:8000/jpg/1/image.jpg'; 

var buffer = {}; 
function preload() { 
    buffer = new Image(); 
    // attaching the seconds breaks cache 
    buffer.src = cam_image + '?' + (new Date()).getTime(); 
    buffer.onload = function() { 
     setTimeout(preload, 30000); // 30 seconds refresh 
     document.getElementById('myimg').src = buffer.src; 
    } 
} 
preload(); 
</script> 
+0

ile jQuery kullanmak zorunda gidiyorum Bu birlikte var küçük javascript bilgiden parça çalışıyorum ve mantıklı, aslında en yakın işe almak için.Görüntü çekilir ve tarayıcı yeni görüntüyü zaman damgasıyla yükler, ancak hiçbir zaman yeniden yüklenmez. İşte bu örneği test etmek için kullanılabilecek örnek bir görüntü akışıdır. Http://absdev.ws:8000/jpg/1/image.jpg – Javier

+0

Daha önce yazdığım kodda birkaç küçük hata vardı. Yukarıdaki kodu düzenledim. Şimdi çalıştığını görmelisin. –

+0

Güzel çalışıyor, teşekkürler efendim! – Javier

0

resimlerden oluşan statik grubuyla çalışıyorsanız - Zaten dosya biliyorum ve değişecek değil - Başlangıçta html içine her şeyi yük olur (yani boş ekran çözer endişe), daha sonra, belirttiğiniz aralıkta görüntüleri döndürmek/yenilemek için bir jquery eklentisi kullanın, 30 saniye ya da her neyse. içlerinden

<ul> 
    <li><img src="[camera ip]/jpg/1/image.jpg"></li> 
    <li><img src="[camera ip]/jpg/2/image.jpg"></li> 
    <li><img src="[camera ip]/jpg/3/image.jpg"></li> 
    ... 
</ul> 

Ve sonra eklenti olur döngüsü:

Yani, html böyle bir şey olmazdı.

eklentileri için

, bu ikisinden birini kullanın:

http://nivo.dev7studios.com/

http://jquery.malsup.com/cycle/

İyi şanslar!

... Ben ferahlatıcı görüntü ile çevrimiçi bir web kamerası bulamadı
+0

Brett, görüntü akışının adresi hiçbir zaman değişmez. Döngü eklentisi, aradığım işlevin bir kısmını içeriyor ama bence bu betikler başarmaya çalıştığım şey için çok ağır. – Javier

+0

kapsamlı javascript bilgisi olmadan, bir eklenti – Brett

İlgili konular