【急,要交项目了】类似于做QQ的视频聊天...求教原理
我自己做了QQ的视频聊天
这里跳过客户端和服务器的部分:
(就是我要跟令一个客户端进行视频聊天,我就发送我开放的端口给服务器,服务器那边得到我的Ip加上我开放的端口帮我转发给那个客户端,这步已经连接上了)
【请求视频】客户端1 (port)-> 服务器(请求用户的ip + port) -> 【被请求】客户端2
之后 客户端1(ip + port)开一个线程[函数:f()] <--> 客户端2(ip+port) 也开一个线程[函数: g()]
然后,让客户端1,先发图片过去
private int flag = 0;
void f()
{
if(flag == 0)
{
把自己视频上的图片截图下来,序列化之后发给 客户端2
flag = 1;
}
else
{
1.接受发来的图片,显示在pictureBox上
2.把自己视频上的图片截图下来,序列化之后发给 客户端2
}
}
客户端2,
void g()
{
1.接受到图片之后显示在picturebox上
2.把自己视频上的图片截图下来,序列化之后发给 客户端2
}
这样处理好像发送得很慢,超级卡,而且有的时候 甚至不能通讯..
序列化,接受包都没问题
问题就是好像这种模式不是视频聊天的模式
我是各自两边都开线程
然后 客户端1 这边先发图片, 客户端2接受到图片之后,再发一张给 客户端1, 客户端1接受到之后 再发一张给客户端2
这样一直下去
我很急。。。。请大家帮帮忙!马上要交项目了!
[解决办法]
视频不会 只会发图片 但是 可以给你改进思路
1.图片格式,给定小格式的图片,你自己查下那个格式的图片小。
2.图片传输过来是否给内存流清理资源。
你看看能帮助你不
[解决办法]
用udp发送,每100毫秒发送一张图片给对方(效率高的话可以考虑更短的发送时间),只要对方收到新图片就放到pictruebox!这只是我的一个思路,毕竟没做过视频聊天的。
[解决办法]
晕死。
视频或者语音通讯,最关键的是开发编码、解码器,传送的是帧的差分信息而不是整个帧。
会点通讯不算什么技术。
[解决办法]
楼上正解哈c#本来就封装得够完整了。这个并不算是技术。
[解决办法]