我使用此代碼來捕獲網絡攝像機的圖像:我爲什麼要這麼做時Stream.CanSeek是假
HttpWebRequest reqs = (HttpWebRequest)WebRequest.Create("http://" + ip + snapshotCommand);
reqs.Method = "POST";
reqs.Timeout = 4000;
reqs.Credentials = new NetworkCredential(user, pass);
reqs.PreAuthenticate = true;
HttpWebResponse resp = (HttpWebResponse)reqs.GetResponse();
if (resp != null)
{
Stream stm = resp.GetResponseStream();
img = new Bitmap(stm);
stm.Close();
}
但流拋出一個異常,因爲CanSeek
& CanWrite
是假的。 我嘗試了很多方法,例如Copyto
(MemoryStream),但問題仍然存在。 你能幫我解答嗎?
這是使用代碼的MemoryStream:
Stream stm = resp.GetResponseStream();
MemoryStream ms = new MemoryStream();
stm.CopyTo(ms);
ms.Position = 0;
而這個 「毫秒」 爲ReadTimeout
& WriteTimeout
丟給: 消息 「超時不支持此流。」 因爲canTimeout()
對於MemoryStream也是錯誤的。
最後我找到了這個解決方案,並且它工作得很好: https://stackoverflow.com/a/2368505/492628
我也試過緩衝區解決方案 – Negar
顯示覆制到'MemoryStream'的代碼和你得到的錯誤 – Brandon
不要將代碼粘貼到註釋中;這樣的代碼是不可讀的。請編輯問題並將代碼粘貼到那裏。 – Amy