starwar3
starwar3
2017-08-25 09:43

怎么实现interface回调。

20
  • callback
  • 视频

3.5.3 实时预览 NET_DVR_RealPlay_V40
函 数: public int NET_DVR_RealPlay_V40(int lUserID, NET_DVR_PREVIEWINFO previewInfo, RealPlayCallBack
CallBack)
参 数: [in] lUserID NET_DVR_Login_V30 的返回值
[in] previewInfo 预览参数,包括码流类型、取流协议、通道号等
[in] CallBack 码流数据回调函数
public interface RealPlayCallBack {
public void fRealDataCallBack(int iRealHandle, int iDataType, byte[] pDataBuffer, int iDataSize);
}
[out] iRealHandle 当前的预览句柄
[out] iDataType 数据类型
[out] pDataBuffer 存放数据的缓冲区指针
[out] iDataSize 缓冲区大小

返回值: -1 表示失败,其他值作为 NET_DVR_StopRealPlay 等函数的句柄参数。接口返回失败请调用
NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说 明:
通过该接口设置实时流回调函数获取实时流音视频数据,然后可以通过播放库进行解码显示。

---------------------------------------以上是sdk说明
遇到的问题是:我现在lUserID和previewInfo参数都没问题了,就是这个回调的接口作为参数输入不知道怎么实现。
我现在实现的方法是:

    public class PlayCallBack : RealPlayCallBack
    {
        public IntPtr Handle
        {
            get
            {
                throw new NotImplementedException();
            }
        }

        public void Dispose()
        {
            throw new NotImplementedException();
        }

        public void FRealDataCallBack(int p0, int p1, byte[] p2, int p3)
        {
            //回调取到数据 调用SDK执行Input操作

            //执行的代码
        }
    }

然后实例化PlayCallBack playback=new PlayCallBack();
用playback作为参数输入的,但是调试的时候断点一直就没执行过FRealDataCallBack这个方法。导致一直无法显示画面。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐

换一换