DLLEXPORT_API int __stdcall StartVideoCapture(HANDLE hChannelHandle);
DLLEXPORT_API int __stdcall StopVideoCapture(HANDLE hChannelHandle);
我在C#中定义了以下方法
/// <summary>
/// 启动主通道编码数据流捕获
/// 说 明: 启动主通道编码数据流捕获。用户程序可以使用直接读取方式,使用
/// StreamDirectReadCallback回调函数直接对数据流进行处理;也可以与H卡一样,通过消息读取方式,等SDK向用户程序发送在 RegisterMessageNotifyHandle中注册的消息,用户程序使用ReadStreamData来读取数据流。
/// </summary>
/// <param name="hChannelHandle">通道句柄</param>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int StartVideoCapture(IntPtr hChannelHandle);
/// <summary>
/// 停止主通道编码数据流捕获
/// </summary>
/// <param name="hChannelHandle">通道句柄</param>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int StopVideoCapture(IntPtr hChannelHandle);
/// <summary>
/// 编码数据流直接读取回调函数委托
/// </summary>
/// <param name="channelNumber">通道号</param>
/// <param name="DataBuf">缓冲区地址</param>
/// <param name="Length">缓冲区长度</param>
/// <param name="FrameType">缓冲区数据帧类型</param>
/// <param name="context">设备上下文</param>
/// <returns></returns>
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int STREAM_DIRECT_READ_CALLBACK(uint channelNumber, IntPtr DataBuf, uint Length, int FrameType, IntPtr context);
/// <summary>
/// 编码数据流直接读取回调函数
/// </summary>
/// <param name="channelNumber">通道号</param>
/// <param name="DataBuf">缓冲区地址</param>
/// <param name="Length">缓冲区长度</param>
/// <param name="FrameType">缓冲区数据帧类型</param>
/// <param name="context">设备上下文</param>
/// <returns></returns>
public static int _StreamDirectReadCallBack(uint channelNumber, IntPtr DataBuf, uint Length, int FrameType, IntPtr context)
{
}
在这个回调函数中,我怎么才能把视频数据保存到文件?谢谢
解决问题,全分奉上!