0

したがって、私の目的は、基本的な必要最小限のビデオ ストリーミング アプリケーションを作成することです。

この目的のために、私は継続的にウェブカメラを介して画像をキャプチャし、NetworkStreamクラスを介してそれらを送信しています (私はそれが大まかな解決策であることを知っていますが、本番環境で使用するための単なる基本的な必要最小限のアプリであると述べました)。

だから今問題はこの行にあります

Image img = Image.FromStream(receiveStream);

これで、この行から先に進まないスレッドがブロックされます。ストリームから画像をキャプチャすることになっているので、何が問題なのですか?

4

2 に答える 2

3

NetworkStreamが閉じてImage.FromStreamいないため、現在の画像がいつ完了したかわからないことが問題だと思います。

あなたがプロトコルを担当していると仮定すると、各画像に長さのプレフィックスを付けることができ、ストリームから読み取るときに、その正確なバイト数をバイト配列に読み取り、それを でラップしてMemoryStreamから渡すことができますにImage.FromStream。このようにして、 への各呼び出しImage.FromStreamは、単一の画像の後に終了するストリームを取得します。

したがって、次のNetworkStreamようになります。

Length (4 bytes)
Data for one image
Length (4 bytes)
Data for one image
// etc
于 2013-08-03T07:57:42.063 に答える