Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)
2010-12-01 17:36
441 查看
前言:
SynchronizationContext syn=SynchronizationContext.Current;//获取当前主线程
void receiveEvent_Completed(object sender, SocketAsyncEventArgs e)
{
byte[] data=e.Buffer;
if (data[0]>0)
{
syn.Post(SetVideo, data);//由于新线程无法对控件进行操作,需要主线程来调用
}
}
void SetVideo(object data)//设置视频
{
MemoryStream stream=null;
WriteableBitmap img=null;
try
{
stream = new MemoryStream(data as byte[]);
img = new WriteableBitmap(160, 160);
img.SetSource(stream);
imgVideo.Source = img;//直接赋下值,就设置好了。
}
catch
{
return;
}
finally
{
if (stream != null)
{
stream.Close();
}
if (img != null)
{
img = null;
}
}
}
上面的imgVideo为:
<Image Height="160" HorizontalAlignment="Left" Margin="207,109,0,0" Name="imgVideo" Stretch="Fill" VerticalAlignment="Top" Width="160" />
至此,我们连续完成了“打开视频—》注册—》等待接收-》接收时开主线程显示”,我们提前看一下完成后接收时的效果图:
![](http://images.cnblogs.com/cnblogs_com/cyq1162/201012/chess_5_3.jpg)
红色块是显示视频的区域,当前图片说明左侧没有开启视频,只是开了接收,右侧开了视频,并发送视频。
下面再顺路看一下开启的服务端中转Socket的运行:
![](http://images.cnblogs.com/cnblogs_com/cyq1162/201012/chess_5_4.jpg)
OK,本节就先到此,下节我们再讲“视频图片的压缩与发送”+服务端处理中转流程
最后:谢谢大家对本系列的喜欢,谢谢支持~
PS:传说点一下推荐会有10个园豆,喜欢麻烦点一下“推荐”,thank you very much!!
SynchronizationContext syn=SynchronizationContext.Current;//获取当前主线程
void receiveEvent_Completed(object sender, SocketAsyncEventArgs e)
{
byte[] data=e.Buffer;
if (data[0]>0)
{
syn.Post(SetVideo, data);//由于新线程无法对控件进行操作,需要主线程来调用
}
}
void SetVideo(object data)//设置视频
{
MemoryStream stream=null;
WriteableBitmap img=null;
try
{
stream = new MemoryStream(data as byte[]);
img = new WriteableBitmap(160, 160);
img.SetSource(stream);
imgVideo.Source = img;//直接赋下值,就设置好了。
}
catch
{
return;
}
finally
{
if (stream != null)
{
stream.Close();
}
if (img != null)
{
img = null;
}
}
}
上面的imgVideo为:
<Image Height="160" HorizontalAlignment="Left" Margin="207,109,0,0" Name="imgVideo" Stretch="Fill" VerticalAlignment="Top" Width="160" />
至此,我们连续完成了“打开视频—》注册—》等待接收-》接收时开主线程显示”,我们提前看一下完成后接收时的效果图:
![](http://images.cnblogs.com/cnblogs_com/cyq1162/201012/chess_5_3.jpg)
红色块是显示视频的区域,当前图片说明左侧没有开启视频,只是开了接收,右侧开了视频,并发送视频。
下面再顺路看一下开启的服务端中转Socket的运行:
![](http://images.cnblogs.com/cnblogs_com/cyq1162/201012/chess_5_4.jpg)
OK,本节就先到此,下节我们再讲“视频图片的压缩与发送”+服务端处理中转流程
最后:谢谢大家对本系列的喜欢,谢谢支持~
PS:传说点一下推荐会有10个园豆,喜欢麻烦点一下“推荐”,thank you very much!!
相关文章推荐
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-下篇[客户端发送与服务端中转](六)
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-下篇[客户端发送与服务端中转](六)
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-下篇[客户端发送与服务端中转](六)
- Silverlight+WCF 实战-网络象棋最终篇之房间装修-Silverlight端[带第九阶段源码](三)
- Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口(四)
- Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口(四)
- Silverlight+WCF 实战-网络象棋最终篇之解决重复的消息提示-状态重置(九)
- Silverlight+WCF 实战-网络象棋最终篇之房间装修-Silverlight端[带第九阶段源码](三)
- Silverlight+WCF 实战-网络象棋最终篇之房间装修-WCF端(二)
- Silverlight+WCF 实战-网络象棋最终篇之房间装修-Silverlight端[带第九阶段源码](三)
- Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口-应用篇(七)
- Silverlight+WCF 实战-网络象棋最终篇之十字轨迹(一)
- Silverlight+WCF 实战-网络象棋最终篇之解决重复的消息提示(八)
- Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口-应用篇(七)
- Silverlight+WCF 实战-网络象棋最终篇之非线程阻塞倒计时窗口-应用篇(七)
- Silverlight+WCF 实战-网络象棋最终篇之十字轨迹(一)
- Silverlight+WCF 实战-网络象棋最终篇之房间装修-WCF端(二)