2013-03-08 3 views
0

Я пытаюсь создать сайт, основанный на ASP.Net. Я не знаю, как обновить изображение. Я пытаюсь создать ссылку на веб-сайт для IP-камеры. Я знаю источник камеры, а также у меня есть разрешение на IP-камеру. Есть ли у кого-нибудь идеи сделать это?Как обновить изображение в asp.net?

Спасибо Джимми

+0

Вы говорите, что хотите, чтобы ваше приложение asp.net получило доступ к подключенной камере? – jason

+0

Это зависит от камеры. Большинство из них имеют общедоступную ссылку на видеопоток, который вы можете использовать. –

+0

Я думаю, он спрашивает, как отображать живое видео на веб-сайте с камеры, к которой у него есть доступ. Это верно? –

ответ

2

Вы можете использовать простой javascript, чтобы обновить его на странице.

Скажите, что ваша камера обновляет те же самые изображения изображений imagefromcamera.jpg. Тогда вы показать его на странице с простой HTML, или с контролем изображения осины и обновить его с JavaScript как:

<img id="LiveImg" width="320" height="320" alt="" src="imagefromcamera.jpg?" /> 
<script> 
var myImg = document.getElementById("LiveImg"); 
if (myImg){ 
    window.setInterval(function(){ 
      myImg.src = myImg.src.replace(/\?.*$/, '?' + Math.random()); 
     }, 3000); 
}   
</script> 

Добавление этого случайного числа в конце изображения мы уверены, что не держать в кеш браузера. Таймер здесь необходим, чтобы обновлять его каждые несколько секунд, скажем, здесь 3 секунды.

Теперь, если ваша камера делает разные имена, вы можете использовать ту же идею и загрузить их. Если у вас есть другой способ получить изображения с камеры, вы можете использовать обработчик для отправки изображения. Вот аналогичный пример. Я сделал имена обработчиков captureimage.ashx, использовать один и тот же код в JavaScript стороне:

<img id="LiveImg" width="320" height="320" alt="" src="captureimage.ashx?" /> 
<script> 
var myImg = document.getElementById("LiveImg"); 
if (myImg){ 
    window.setInterval(function(){ 
      myImg.src = myImg.src.replace(/\?.*$/, '?' + Math.random()); 
     }, 3000); 
} 
</script> 

и на стороне сервера обработчик может быть что-то вроде:

public class ReadTheCameraImage : IHttpHandler 
{ 
    public void ProcessRequest (HttpContext context) 
    { 
     context.Response.ContentType = "image/jpeg"; 
     context.Response.Buffer = false; 
     // read the ImageData from what ever source you have 
     context.Response.OutputStream.Write(ImageData, 0, ImageData.Length);   
    } 

    public bool IsReusable 
    { 
     get { 
      return false; 
     } 
    } 
} 

Здесь я хотел бы сказать, что это не решение для живого видео, но просто для отображения захвата веб-камеры на страницу, например, сделать онлайн-камеры в Интернете, которые показывают некоторые места. Для живого видео и живого общения вам нужен гораздо более сложный код, а также использование Adobe Flash Player вместе с потоковой передачей сервера, прямым подключением к каждому подключенному клиенту и другим вещам.

Некоторые другие ответы на видео, в случае, если ваша поддержка программного обеспечения камеры прямого потокового видео: how to work with videos in ASP.NET?
How to play audio and video files in web browser?
how can i play vimeo player on image click?

0

Вы найдете эту статью полезной UpdatePanel Refresh. Если вы не заботитесь о мерцании Postback, вы также можете создать таймер в java-скрипте и для каждого тикового вызова __doPostBack ('', ''); Вы также можете создать WebMethod, который вы можете вызвать с помощью jQuery и таким образом обновить изображение.

+2

«UpdatePanel» - неправильное решение для этого. Он будет выполнять весь жизненный цикл страницы только для обновления одного изображения; это крайне неэффективно. –

Смежные вопросы