AnyChat技术支持论坛

标题: YUV问题 [打印本页]

作者: hk92    时间: 2015-12-14 16:26
标题: YUV问题
您好,视频数据回调函数当中视频数据缓冲区lpBuf,是一块内存,我想把原始的YUV数据缓存到D盘中的某个文件夹下,我具体该怎么操作呢(利用c#语言)?

作者: 佰锐科技-李永星    时间: 2015-12-14 17:05
您好,1、获取YUV格式 2、在视频数据回调函数接口,以附加方式打开可读写文件(d:\\test.yuv)并写入lpBuf数据即可。
作者: hk92    时间: 2015-12-16 10:59
佰锐科技-李永星 发表于 2015-12-14 17:05
您好,1、获取YUV格式 2、在视频数据回调函数接口,以附加方式打开可读写文件(d:\\test.yuv)并写入lpBuf ...

您好,我做了以下的测试,来利用视频数据回调函数数据,结果没有数据按照我想要的方式输入到我指定的文件当中。
  1. namespace ANYCHATAPI
  2. { public delegate void VideoDataCallback(int userId, IntPtr buf, int len, AnyChatCoreSDK.BITMAPINFOHEADER bitMap, int userValue);}
复制代码
然后注册视频回调
  1.   AnyChatCoreSDK.SetVideoDataCallBack(AnyChatCoreSDK.PixelFormat.BRAC_PIX_FMT_RGB24, video_Callback, hWnd.ToInt32());
复制代码
  1. static AnyChatCoreSDK.VideoData_CallBack video_Callback = new AnyChatCoreSDK.VideoData_CallBack(VideoData_CallBack);
复制代码
然后是
  1. public static VideoDataCallback Video_OnCallBack = null;
复制代码
  1.   private static void VideoData_CallBack(int userId, IntPtr buf, int len, AnyChatCoreSDK.BITMAPINFOHEADER bitMap, int userValue)
  2.         {
  3.             
  4.             if (Video_OnCallBack != null)
  5.                 Video_OnCallBack(userId, buf, len, bitMap, userValue);
  6.            // Console.WriteLine("123");
  7.         }
复制代码
以上是 初始化AnyChat sdk 注册 callback
然后在初始化房间的时候
  1. SystemSetting.Video_OnCallBack = new VideoDataCallback(Received_Videodata);
复制代码
  1. private void Received_Videodata(int userId, IntPtr buf, int len, AnyChatCoreSDK.BITMAPINFOHEADER bitMap, int userValue)
  2.         {
  3.             string m_Command = Marshal.PtrToStringAnsi(buf);
  4.             File.AppendAllText("D:\\a.txt", m_Command);     
  5.         }
复制代码
按照开发文档说的,在调用ret = AnyChatCoreSDK.UserCameraControl(-1, true)时就会触发回调函数,那么我测试的时候,为什么在D盘下的a.txt文档中没有数据呢?




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