0

ASP.NetをベースにしたWebサイトを作成しようとしています。画像を更新する方法がわかりません。IPカメラへのウェブサイトリンクを構築しようとしています。私はカメラの出所を知っており、IPカメラの許可も持っています。誰かがこれを行うためのアイデアを持っていますか?

ありがとうジミー

4

2 に答える 2

2

シンプルjavascriptにページを更新できます。

カメラが同じ画像名を更新するとしますimagefromcamera.jpg。次に、単純なhtmlまたはaspイメージコントロールを使用してページに表示し、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;
        }
    }
}

ここで私が言いたいのは、これはライブ ビデオのソリューションではなく、Web カメラのキャプチャをページに表示するためのソリューションであり、インターネット上でいくつかの場所を表示するライブ Web カメラを作成することです。ライブ ビデオやライブ コミュニケーションには、はるかに複雑なコードが必要です。Adobe Flash Player とサーバー ストリーミング、接続されている各クライアントとの直接接続などを併用する必要があります。

カメラ ソフトウェアが直接ビデオ ストリーミングをサポートしている場合、ビデオに関するその他の回答: ASP.NET でビデオを操作するには?
Web ブラウザでオーディオ ファイルとビデオ ファイルを再生する方法を教えてください。
画像クリックでvimeoプレーヤーを再生するにはどうすればよいですか?

于 2013-03-08T20:40:26.260 に答える
0

この記事はUpdatePanel Refreshに役立ちます。ポストバックのちらつきを気にしない場合は、Java スクリプトでタイマーを作成し、ティックごとに __doPostBack('',''); を呼び出すこともできます。jQuery を使用して呼び出すことができる WebMethod を作成し、その方法で画像を更新することもできます。

于 2013-03-08T20:40:36.633 に答える