当前位置: 首页 > 编程语言 > C#

从IPcamC#进行流式共享

时间:2023-04-10 12:39:36 C#

从IPcamC#流式传输我有以下代码无法正常工作。如果我加载到Firefox并从我的网络摄像头流式传输,我的camUrl链接工作正常,但在运行时我的camUrl不显示任何内容。有任何想法吗?公共线程_camThread;私有字符串camUrl="http://my-domain-ip:2080/videostream.cgi?user=admin&pwd=password";公共HttpWebRequestwebReq;publicWebResponsewebRes;公共流sr;privatevoidbtnStart_Click(objectsender,EventArgse){if(_camThread==null)_camThread=newThread(newThreadStart(RunCam));_camThread.Start();}privatevoidRunCam(){try{webReq=(HttpWebRequest)WebRequest.Create(camUrl);webReq.AllowWriteStreamBuffering=true;webReq.Timeout=20000;使用(webRes=webReq.GetResponse()){while((sr=webRes.GetResponseStream())!=null){image.Image=Image.FromStream(sr);}}}catch(Exceptionex){MessageBox.Show(ex.Message);}}privatevoidbtnStop_Click(objectsender,EventArgse){if(_camThread.IsAlive){_camThread.Abort();_camThread=空;看起来你正在循环错误地从响应流中读取。您只能从响应中获取一个流,并且上面会有多个图像。您可能无法将响应流直接传递给Image.FromStream-图像可能被编码为将图像与文本分隔符分开的多部分响应。您可以在RFC2046中阅读有关多部分响应格式的更多信息。using(webRes=webReq.GetResponse()){using(sr=webRes.GetResponseStream()){//不断从响应流中读取图像直到出错while(true){try{//注意:下面的行可能不会'不起作用,您可能需要手动解析//来自多部分响应流的下一个图像image.Image=Image.FromStream(sr);//如果上面的方法不起作用,那么做这样的事情://varimageBytes=ParseNextImage(sr);//varmemoryStream=newMemoryStream(imageBytes);//image.Image=Image.FromStream(memoryStream);}catch(Exceptione){Console.WriteLine("由于错误{0}而中止从响应流中读取",e);休息;}}}}camUrl是否返回图像?尝试调试sr=webRes.GetResponseStream()如果它不为null则尝试image.Update()或image.Update()以获取有关无效、更新和刷新的更多信息以上是C#学习教程:来自IPcamC#如果全部内容流分享的内容对你很有用,需要了解更多的C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: