网络视频聊天交流目前很是热门,但用WEB视频就不是那么简单了。
以前有两种方式可以实现 一个是用客服ACTIVE控件 二是用JAVA APP但两种都不很理想。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_s1026" style="MARGIN-TOP: -148.4pt; Z-INDEX: 251657728; MARGIN-LEFT: -90pt; WIDTH: 15pt; POSITION: absolute; HEIGHT: 15pt; mso-wrap-distance-left: 4.5pt; mso-wrap-distance-right: 4.5pt; mso-position-horizontal-relative: text; mso-position-vertical-relative: line" href="http://www.alphatom.com/../../../component/option,com_docman/task,doc_details/gid,3/" o:button="t" o:allowoverlap="f" target="_self" alt="Image" type="#_x0000_t75"><font size="3"><imagedata o:title="source" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif"></imagedata><wrap type="square"></wrap></font></shape>源代码下载
网络视频聊天 交流目前很是热门
但用WEB视频就不是那么简单了
以前有两种方式可以实现 一个是用客服ACTIVE控件 二是用JAVA APP但两种都不很理想
一个是网络信号采集不能自适应带宽,二是技术上的难题 现在流行的BCHAT(碧聊用的)就是采用第一种方式,但我还是不能把控件给分离出来,网上了也没有 免费 或者商业的现成控件卖 第二个方式我就不说了,因为WIN XP以上不支持JAVA所以免谈
但是现Macromedia推出的新技术Flash Communication Server MX确很方便实现了,关于这个方面的介绍大家可以去网上找
下载测试版后有几个现成的例子,在这说说怎么利用ASPX和FLASH通信实现两个ID的交流
<shape id="_x0000_i1025" style="WIDTH: 340.5pt; HEIGHT: 259.5pt; mso-wrap-distance-left: 4.5pt; mso-wrap-distance-right: 4.5pt" alt="Image" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg" o:href="http://www.alphatom.com/images/stories/img_pictures/asp_flash_carma.jpg"></imagedata></shape>
这里发一下成品的图片
这是我是asp.net+SQL写的仿QQ的在线通信系统
功能还不错 QQ的功能在这都有了
最让我得意是终于实现了视频的功能
FLASH的视频功能是b-s-b模式 也就是在服务段会有个零时视频文件
具体代码就打包让下载好了
这个写点重点
SP.aspX
<%@Language="C#"%>
<scriptrunat="server">
privatevoidPage_Load(objectsender,System.EventArgse)
{
Response.Write("conn=1&Sendid="+Session["nmd"]+"&Recvid="+Session["Recvid"]);
}
</script>
Cam.aspx
<%@PageLanguage="C#"%>
<scriptrunat="server">
privatevoidPage_Load(objectsender,System.EventArgse)
{
Session["RecvId"]=Request.QueryString["RecvId"];
}
</script>
<html>
<head>
<metahttp-equiv="Content-Language"content="zh-cn">
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>无标题文档</title>
</head>
<bodyleftmargin="0"topmargin="0"marginwidth="0"marginheight="0">
<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-44553540000"
codebase= http://download.macromedia.com/pub/shockwave
/cabs/flash/swflash.cab#version=6,0,29,0width="220"height="200">
<paramname="movie"value="SP.swf">
<paramname="quality"value="high">
<embedsrc="SP.swf"quality="high"pluginspage=
http://www.macromedia.com/go/getflashplayer
type="application/x-shockwave-flash" width="220"height="200">
</embed></object>
</body>
</html>
SP.swf的角本
stop();
client_nc = new NetConnection();
//NetConnection.onStatus(para)用来监测server返回的信息
//当server返回的信息时,此处理器被触发
//参数是一个包含着返回信息的对象,包含着两个固定变量level和code,该参数名称可随便命名
client_nc.onStatus = function(info) {
// 利用trace功能将server返回的信息可视化
trace("Level: "+info.level+newline+"Code: "+info.code);
};
// 连接到server上,建立rtmp连接
//下面写的是相对地址,原因是我的web server和flash communication server在一台机器上
//如果你的web server和flash communication server不在一台机器上,只要满足两台机器的ip在一个域
//你就可以同样成功建立连接,可以写成client_nc.connect("rtmp:/192.168.0.1/record_video");
//record_video是文件夹的名字,该文件夹必须事先存在
//假设你是按照默认安装的communication server,那么record_video文件夹就应该放在
//C:Program FilesMacromediaFlash Communication Server MXflashcomapplications目录下面
client_nc.connect("rtmp://192.168.0.2/record_video");
// 使用SharedObject.getRemote方法,创建远程SharedObject
//"myvideo"是SharedObject文件名称,对应在server硬盘上的文件是myvideo.fso
// client_nc.uri是一个必要的参数,指向当前rtmp的连接
// 第三个是可选参数,true代表将myvideo.fso写入硬盘,false、null或者省略代表不写入,只作临时存在
rec_so = SharedObject.getRemote("myvideo", client_nc.uri, true);
//sharedobject.onSync(para)用来动态监测sharedobject的变化情况
//每当sharedobject发生变化时,此处理器被触发
//参数是一个数组,记录sharedobject.data中发生变化的内容,该参数名称可随便命名
//该数组的每个成员都是一个对象,对象又有两个成员code和name
//name代表的是发生变化的sharedobject.data里面的发生变化的内容
//code代表的是这个内容发生了什么变化,是系统返回信息
// 将sharedobject功能连接到server上
rec_so.connect(client_nc);
var Recvid;
var Sendid;
GetId();
function Recv() {
//创建新的NetStream流对象,将会用来播放留言信息
in_ns = new NetStream(client_nc);
//通过NetStream.play方法播放server上的flv文件
in_ns.play(Recvid);
mybox.attachVideo(in_ns);
}
function Send() {
this.cam = Camera.get();
this.mic = Microphone.get();
// 在client_nc连接上,创建NetStream对象
out_ns = new NetStream(client_nc);
// 通过NetStream.attachVideo方法获得摄像头的图像
out_ns.attachVideo(this.cam);
// 通过NetStream.attachAudio方法获得麦克风的声音
out_ns.attachAudio(this.mic);
out_ns.publish(Sendid, "live");
}
function GetId(){
//构造一个新的LoadVars对象
myload = new LoadVars();
//设定myload的动作,以便服务器验证
myload.action = "post";
//验证和服务器连接的函数
myload.onLoad = function(success) {
//如果和服务器成功连接则…
if (success) {
//如果验证动作成功则…
if (this.conn == "1") {
//将返回对象中的output变量赋值给场景中var为output的Dynamic Text框
_root.Recvid = this.Recvid;
_root.Sendid = this.Sendid;
Send();
Recv();
}
} else {
//如果和服务器连接不成功则返回失败消息,需要检查路径是否正确
}
};
myload.sendAndLoad("http://localhost/WEBQQ/SP.aspx", myload, "post");
}
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 340.5pt; HEIGHT: 259.5pt; mso-wrap-distance-left: 4.5pt; mso-wrap-distance-right: 4.5pt" alt="Image" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.jpg" o:href="http://www.alphatom.com/images/stories/img_pictures/asp_flash_carma.jpg"></imagedata></shape>
分享到:
相关推荐
php+FCS+MYSQL的flash视频聊天室程序 包含完整程序代码
php+FCS+MYSQL的flash视频聊天室程序
以太网测试仪中基于FPGA的FCS实现.pdf
详情:https://blog.csdn.net/weixin_43470383/article/details/137248478 Matlab版本:2022b 应用对象:电池 boost 应用方法:电压PI+电流FCS-MPC双环控制 ...实现功能:给定参考电压,实现电压跟踪
详情:https://blog.csdn.net/weixin_43470383/article/details/137244740 Matlab版本:2022b 应用对象:电池 buck-boost 应用方法:电压PI+电流FCS-MPC双环控制 ...实现功能:给定参考电压,实现电压跟踪
详情:https://blog.csdn.net/weixin_43470383/article/details/137261931 Matlab版本:2022b 应用对象:电池 双向DC/DC 应用方法:电压PI+电流FCS-MPC双环控制 ...实现功能:给定参考电压,实现电压跟踪
Flash Communication Server
用VB实现PC与OMRON PLC的串口通信,Host Link 协议下C-mode指令 包含FCS校验码计算代码,
FCS校验计算器
实现FCS与MATLAB之间数据共享与互联.pdf
新桥煤矿对此进行了技术改造,按现场总线具有开放性和互操作性的性能,用FCS实现现场各个控制器和仪表设备互联,提高各子系统间的融合程度,实现了智能设备互相感知,即物与物相联,取得了较好的效果。
VB.net与OMRON CP系列PLC通讯,截图是辅助程序:FCS校验计算器的运行效果,与PLC通讯的实例在PLC-PC文件夹下,源码在VB.NET环境编译。 LBIndustrialCtrls.dll放在debug目录中,与exe文件同级。
字符串FCS校验码计算方法
FCS框架包含很多特性,包括  面向对象和MVC模式  命名空间和国际化支持  兼容PHP4和PHP5  项目部署和协作开发  编码转换和utf-8支持  充分支持PATHINFO  ...
欧姆龙plc的 hostlink 的fcs校验工具 http://blog.csdn.net/aliealie/article/details/53930703
两种方式进行异或运算 上面有详细的时间记录
欧姆龙FCS校验器 VB源代码,校验FCS值,可以算出FCS值,直接输入COM口通讯字串代码运算.
https://javaserverfaces.dev.java.net/ mojarra-1.2._11_b0_FCS JDK 1.5 绝对能用 good luck
应用方法:FCS-MPC 实现功能:在考虑延时问题的情况下,给定参考电流,实现电流跟踪 控制部分用Matlab Function实现: 1) 负载电流的测量; 2) 切换状态的应用(在前一个间隔中计算); 3) 考虑所施加的开关状态...