AnyChat技术支持论坛

标题: 视频扩展回调函数问题 [打印本页]

作者: SDE2015    时间: 2015-8-5 15:42
标题: 视频扩展回调函数问题
新版版并未看到扩展回调函数

新版本增加常量定义:BRAC_PIX_FMT_H264,API接口没有改变。
1、当需要通过回调函数获取用户的H.264编码数据时,可以在设置回调函数时传入常量,如:

// 设置回调函数
BRAC_SetVideoDataExCallBack(BRAC_PIX_FMT_H264, OnVideoDataExCallBack, this);

// 回调函数实现
void CALLBACK OnVideoDataExCallBack(DWORD dwUserid, LPVOID lpBuf, DWORD dwLen, BITMAPINFOHEADER bmiHeader, DWORD dwTimeStamp, LPVOID lpUserValue)
{

}


作者: 佰锐科技-李永星    时间: 2015-8-5 15:44
本帖最后由 佰锐科技-李永星 于 2015-8-5 15:50 编辑

您好!请问下载的是最新的windows SDK包吗?
作者: admin    时间: 2015-8-5 15:46
您好,请参考:
  1. // 回调函数实现
  2. void CALLBACK OnVideoDataExCallBack(DWORD dwUserid, LPVOID lpBuf, DWORD dwLen, BITMAPINFOHEADER bmiHeader, DWORD dwTimeStamp, LPVOID lpUserValue)
  3. {

  4. }

  5. // 设置回调函数
  6. BRAC_SetCallBack(BRAC_CBTYPE_VIDEODATAEX, (void*)OnVideoDataExCallBack, this);
  7. // 设置回调数据类型
  8. DWORD dwCallBackFmt = BRAC_PIX_FMT_H264;
  9. BRAC_SetSDKOption(BRAC_SO_VIDEOSHOW_CBPIXFMT, (char*)&dwCallBackFmt, sizeof(DWORD));
复制代码

作者: SDE2015    时间: 2015-8-5 15:59
佰锐科技-李永星 发表于 2015-8-5 15:44
您好!请问下载的是最新的windows SDK包吗?

是的 下载时最新的V5.3的SDK包
作者: 佰锐科技-李永星    时间: 2015-8-5 16:05
SDE2015 发表于 2015-8-5 15:59
是的 下载时最新的V5.3的SDK包

您好!请参考admin的帖子操作
作者: SDE2015    时间: 2015-8-5 16:38
SDE2015 发表于 2015-8-5 15:59
是的 下载时最新的V5.3的SDK包

C++里是有的 我想现在通过C#代码实现调用回调函数
作者: 佰锐科技-李永星    时间: 2015-8-5 16:40
本帖最后由 佰锐科技-李永星 于 2015-8-5 17:06 编辑
SDE2015 发表于 2015-8-5 16:38
C++里是有的 我想现在通过C#代码实现调用回调函数


您好,C#里面调用,你可以参考其它类同的回调方式,自己照着写一个。在BRAnyChatCoreSDK.cs里面AnyChat Platform Core SDK 功能函数API接口封装。把C++函数原型添加一个对应委托就可以了,其参数你可以仿照里面已有的进行转换。

  1.         /// <summary>
  2.         /// 视频事件注册
  3.         /// </summary>
  4.         /// <param name="format"></param>
  5.         /// <param name="function"></param>
  6.         /// <param name="userValue"></param>
  7.         /// <returns></returns>
  8.         [DllImport(AnyChatCoreSDKDll, EntryPoint = "BRAC_SetVideoDataCallBack", CallingConvention = CallingConvention.Cdecl)]
  9.         public static extern int SetVideoDataCallBack(PixelFormat format, VideoData_CallBack function,int userValue);

  10.         /// <summary>
  11.         /// 视频扩展事件注册
  12.         /// </summary>
  13.         /// <param name="format"></param>
  14.         /// <param name="function"></param>
  15.         /// <param name="userValue"></param>
  16.         /// <returns></returns>
  17.         [DllImport(AnyChatCoreSDKDll, EntryPoint = "BRAC_SetVideoDataExCallBack", CallingConvention = CallingConvention.Cdecl)]
  18.         public static extern int SetVideoDataExCallBack(PixelFormat format, VideoDataEx_CallBack function, int userValue);
复制代码

  1.         /// <summary>
  2.         /// 视频回调函数
  3.         /// </summary>
  4.         /// <param name="userId"></param>
  5.         /// <param name="buf"></param>
  6.         /// <param name="len"></param>
  7.         /// <param name="bitMap"></param>
  8.         /// <param name="userValue"></param>
  9.         public delegate void VideoData_CallBack(int userId, IntPtr buf, int len, BITMAPINFOHEADER bitMap, int userValue);

  10.         /// <summary>
  11.         /// 视频扩展回调函数
  12.         /// </summary>
  13.         /// <param name="userId"></param>
  14.         /// <param name="buf"></param>
  15.         /// <param name="len"></param>
  16.         /// <param name="bitMap"></param>
  17.         /// <param name="userValue"></param>
  18.         public delegate void VideoDataEx_CallBack(int userId, IntPtr buf, int len, BITMAPINFOHEADER bitMap, int timestamp, int userValue);
复制代码

作者: admin    时间: 2015-8-5 16:49
您好,稍后我们会将相关回调函数的声明补上。
作者: admin    时间: 2015-8-10 19:37
您好,请重新下载AnyChat for Windows SDK,C#的视频扩展回调函数定义已经加上。




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3