T
tuday
Unregistered / Unconfirmed
GUEST, unregistred user!
小弟在做个类视频电话的时候遇到这样个不解的问题,请各路高手帮忙!
我用到了VideoCap 控件(其实可以不用,用它的效果似乎不怎么好,打算用它实现功能之后再处理)
ics。 在videocap 中有个事件是onVideoStream(大概是 WM_CAP_SET_CALLBACK_VIDEOSTREAM触发的)
现在我用videpcap里自带的deom3 修改了点。代码是这样的:
procedure TMainForm.Video1VideoStream(sender: TObject;
lpVhdr: PVIDEOHDR);
begin
try
// Showmessage('On');
WSocket1.Send(lpVhdr^.lpData, lpvhdr^.dwBufferLength);
except
//
end;
inc(Counter);
// Counter 已初始化为0 的全局变量
Edit1.Clear;
Edit1.Text := inttostr(Counter);
edit2.Clear;
Edit2.Text := inttostr(lpvhdr^.dwBufferLength);
……
end;
运行
发现 edit1里counter的不断增加
发现 edit2里的lpvhdr^.dwBufferLength 没有变化
但是,
用于接受wsocket1发出数据的wsocket2没有收到数据的响音!
天网拦截是数据显示发出的数据和接收数据都有,但是发送比接收要多1个数量级!
不知道为何?
Socket是这样初始化的:
begin
WSocket1.Proto := 'tcp';
WSocket1.Port := '4679';
WSocket1.Addr := '127.0.0.1';
WSocket2.Proto := 'tcp';
WSocket2.Port := '4679';
WSocket2.Addr := '127.0.0.1';
WSocket2.Listen;
WSocket1.Connect;
end;
另外,远一点,假如收、发都正常了,怎么样还原图象,以及avi-》mpeg4的问题,
谁能具体解释一下onVideoStream的触发条件?
再要个例子是不是太心大:)
问题很多,各路大虾帮忙啊!
tuday@263.net
我用到了VideoCap 控件(其实可以不用,用它的效果似乎不怎么好,打算用它实现功能之后再处理)
ics。 在videocap 中有个事件是onVideoStream(大概是 WM_CAP_SET_CALLBACK_VIDEOSTREAM触发的)
现在我用videpcap里自带的deom3 修改了点。代码是这样的:
procedure TMainForm.Video1VideoStream(sender: TObject;
lpVhdr: PVIDEOHDR);
begin
try
// Showmessage('On');
WSocket1.Send(lpVhdr^.lpData, lpvhdr^.dwBufferLength);
except
//
end;
inc(Counter);
// Counter 已初始化为0 的全局变量
Edit1.Clear;
Edit1.Text := inttostr(Counter);
edit2.Clear;
Edit2.Text := inttostr(lpvhdr^.dwBufferLength);
……
end;
运行
发现 edit1里counter的不断增加
发现 edit2里的lpvhdr^.dwBufferLength 没有变化
但是,
用于接受wsocket1发出数据的wsocket2没有收到数据的响音!
天网拦截是数据显示发出的数据和接收数据都有,但是发送比接收要多1个数量级!
不知道为何?
Socket是这样初始化的:
begin
WSocket1.Proto := 'tcp';
WSocket1.Port := '4679';
WSocket1.Addr := '127.0.0.1';
WSocket2.Proto := 'tcp';
WSocket2.Port := '4679';
WSocket2.Addr := '127.0.0.1';
WSocket2.Listen;
WSocket1.Connect;
end;
另外,远一点,假如收、发都正常了,怎么样还原图象,以及avi-》mpeg4的问题,
谁能具体解释一下onVideoStream的触发条件?
再要个例子是不是太心大:)
问题很多,各路大虾帮忙啊!
tuday@263.net