C# 开发wm程序的问题。关于视频的。
大风扯 2010-02-26 02:44:17 我写的程序是接收服务端发过来的jpeg数据,大概是每秒15-18张。
是通过socket收发的。我收到数据后分解出来放到一个MemoryStream里面,再显示出来。
部分代码如下
void onread(byte[] buffer ,int len)
{
//分解数据部分省掉了,可以保证没问题的,问题在显示部分。
MemoryStream Mems = new MemoryStream();
Mems.Write(recvBuffer, intDataPos + 20, intImgDataLen);
DateTime start = DateTime.Now;
Mems.Position = 0;
bmpImg = new Bitmap(Mems);//这里有问题。。
double timelen = (DateTime.Now - start).TotalMilliseconds;
if (timelen > 125)
{
System.Diagnostics.Debug.WriteLine("分解时间过长:" + timelen.ToString());
}
pictureBoxVideo.Invoke(new display(displayfun), bmpImg);
//Graphics g = pictureBoxVideo.CreateGraphics();
//g.DrawImage(bmpImg, 0, 0);
//g.Dispose();
//bmpImg.Dispose();
Mems.Close();
Mems.Dispose();
}
bmpImg = new Bitmap(Mems);//
这里的问题,大概在转了7到8张的时候,new的时间会为1000ms,是固定的。
这是什么原因呢?哪里的问题。
我用的是SDK6 ,而且在sdk5中也试过,没办法解决。
谁知道呢??