0

我有一个可以“模拟”实时视频的 asp.net 应用程序。我这样做是从 mysql 数据库中获取多张图片。

问题是如何在网页上显示它。?我每张图片刷新页面 1 秒,结果是图片断断续续和闪烁。

    Response.AppendHeader("Refresh", "1")

如何使页面的刷新率达到每秒 4 次?或者是否有任何实现以大陆方式显示。

如果您能回复,我将不胜感激。美好的一天(^_^)...

这是我用来从数据库中读取图像的脚本。

If dr.Read Then dr.Read() Response.ContentType = "image/jpeg" '获取或设置输出流的类型 Response.BinaryWrite(dr.Item("file")) '将二进制字符流写入http 输出流 Else Response.Write("目前没有活动的网络广播。") End If dr.Close()

4

5 回答 5

3
create a javascript method to change the image using xmlhttpobject and recursively set a timer


         function Timer() {

             setTimeout("getImage(['imageContainer1'])", 200);
             t = setTimeout("Timer()", 100);
                       }

        function getImage(params) {
            var request=getXMLhttpObject();
            makeRequest("ajax/ObtainImage.aspx?name='myimage'+param[1]+'.jpg",request,  imageResponseHandler(request, params));

                   }

    function getXMLhttpObject() {

            return  (navigator.appName == "Microsoft Internet Explorer")? new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
                              }

 function makeRequest(url,request, Handler) {

             request.open("GET", url, true);
             request.onreadystatechange = Handler;
             request.send(null);

         }


    function imageResponseHandler(request,params) {
             return function() {
                 if (request.readyState == 4)
                     document.getElementById(params[0]).src = request.responseText;
             }

         }
于 2009-03-16T23:45:50.830 回答
1

我会使用一些 Javascript/Ajax 来更改内容或元刷新(可能不是快速刷新的最佳选择)。

于 2009-03-16T23:40:42.997 回答
1

也许您需要考虑在页面上加载多张图片并使用 javascript 在它们之间循环。您可以使用 AJAX 获取图片,而不是刷新页面。

于 2009-03-16T23:43:54.970 回答
1

如果你真的想模拟视频,你需要能够每秒至少显示 15 张图片(15fps)。每秒发出这么多请求并不是一个好主意。

如果你绝对必须这样做,我建议先“缓冲”图片,然后再显示它们,如果可能的话,分批获取它们:

buffer = []       // cache loaded images
bufferSize = 30   // load 30 images before playing

function loadImage(src) {
   var img = new Image()
   img.src = src
   buffer.push(img)
}

function animate(target) {
   if (buffer.length > 0) {
      var img = buffer.shift()
      document.getElementById(target).src = img.src
   }
}

function bufferImages() {
   for (var i=0; i<bufferSize; i++) {
      loadImage('/ajax/ObtainImage.aspx?name=img')
   }
}

setInterval("animate('imgTarget')", 65)  // should give us about 15fps 
setInterval("bufferImages()", 1000)  // every second
于 2009-03-16T23:56:03.897 回答
0

将此添加到您的 html 文档的头部。不是最有效的方法,但它会起作用。

<meta http-equiv="refresh" content=".25" />
于 2010-10-27T21:58:17.443 回答