Ejemplo n.º 1
0
        /// <summary>
        /// 视频捕捉前事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void VC_VideoCapturerBefore(object sender, VideoCapturedEventArgs e)
        {
            Console.WriteLine("bmiColors:" + e.BITMAPINFO.bmiColors.ToString());
            Console.WriteLine("biSize:" + e.BITMAPINFO.bmiHeader.biSize.ToString() + " biSizeImage:" + e.BITMAPINFO.bmiHeader.biSizeImage.ToString()
                              + " biBitCount:" + e.BITMAPINFO.bmiHeader.biBitCount.ToString() + " biWidth:" + e.BITMAPINFO.bmiHeader.biWidth.ToString()
                              + " biHeight:" + e.BITMAPINFO.bmiHeader.biHeight.ToString()
                              + " biClrUsed:" + e.BITMAPINFO.bmiHeader.biClrUsed.ToString() + "  biClrImportant:" + e.BITMAPINFO.bmiHeader.biClrImportant.ToString()
                              + " biXPelsPerMeter:" + e.BITMAPINFO.bmiHeader.biXPelsPerMeter.ToString() + " biYPelsPerMeter:" + e.BITMAPINFO.bmiHeader.biYPelsPerMeter.ToString()
                              + " biPlanes:" + e.BITMAPINFO.bmiHeader.biPlanes.ToString() + " biCompression:" + e.BITMAPINFO.bmiHeader.biCompression.ToString());
            if (VE == null)
                VE = new VideoEncoder(e.BITMAPINFO , true);//根据摄像头采集数据的格式,创建新的视频编码器

            if (VR == null)
            {
                VR = new VideoRender(this.cRemote);
                VR.IniVideoRender(e.BITMAPINFO.bmiHeader);
            }

            if (VD == null)
            {
                VD = new VideoEncoder(e.BITMAPINFO , false);//初始化解码器
            }
            //防止丢包,发送三次本地视频图像头信息给对方,以便对方解码器正确解码
            //    AVcommunication1.SendBITMAPINFOHEADER(e.BITMAPINFO.bmiHeader);//发送本地视频图像头信息给对方,以便对方解码器正确解码
            //    System.Threading.Thread.Sleep(300);
            //    AVcommunication1.SendBITMAPINFOHEADER(e.BITMAPINFO.bmiHeader);//发送本地视频图像头信息给对方,以便对方解码器正确解码
            //    System.Threading.Thread.Sleep(300);
            //    AVcommunication1.SendBITMAPINFOHEADER(e.BITMAPINFO.bmiHeader);//发送本地视频图像头信息给对方,以便对方解码器正确解码
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置对方视频格式事件
        /// </summary>
        /// <param name="BITMAPINFO"></param>
        public void SetRemoteBITMAPINFOHEADER(BITMAPINFO BITMAPINFO)
        {
            if (VD == null)
                VD = new VideoEncoder(BITMAPINFO, false);//创建视频解码器

            if (VR == null)
            {
                VR = new VideoRender(this.cRemote);//创建视频回显组件
                VR.IniVideoRender(BITMAPINFO.bmiHeader);
            }
        }