实时抓取不同通道的视频数据流问题
最近在研究流媒体开发,其中要做到同时抓取不同通道的视频,然后录制保存到本地。
定义一个委托
public delegate int pDataRec(int sid, int iusrdata, int idatatype, IntPtr pdata, int ilen);
这里实现调用 封装在一个类中
class hkPlanRec
{
///回调函数在C#创建委托,需实例化,需要定义为全局变量
pDataRec MypDataRec = new pDataRec(pDataRec1);
public int HIKS_CreatePlayer()
{
m_hSesssion = hkclient.HIKS_CreatePlayer(null, (System.IntPtr)null, MypDataRec, MypMsgBack, 0);
...
}
private static int pDataRec1(int sid, int iusrdata, int idatatype, IntPtr pdata, int ilen)
{//pdata就是视频数据流,}
}
因为pDataRec 是一个回调函数,需要不停回调发数据,这里调阅一个视频然后抓数据是没问题的,
在程序中调用 hkPlanRec.HIKS_CreatePlayer() 就行了,
现在要同时抓取多路,就是要定义多个 pDataRec MypDataRec = new pDataRec(pDataRec1);不然就进程中就只有一份数据流,就是不论是什么视频,数据流就是第一次调用得到的视频的数据。
现在要在程序中,动态调用HIKS_CreatePlayer调阅不同视频,抓取各自的数据,互不影响,请问有什么解决办法