bool Test() { //WMEncoderLib.IWMEncSourceGroupCollection srcgrpcoll; //WMEncoderLib.IWMEncSourceGroup srcgrp; //WMEncoderLib.IWMEncSource src; WMEncoderLib.IWMEncVideoSource2 vidsrc2; bool bReturn = true; Console.WriteLine("Initializing..."); m_encoder = new WMEncoderLib.WMEncoderClass(); //srcgrpcoll = (WMEncoderLib.IWMEncSourceGroupCollection) vidsrc2 = (WMEncoderLib.IWMEncVideoSource2) m_encoder.SourceGroupCollection.Add("SourceGroup").AddSource(WMEncoderLib.WMENC_SOURCE_TYPE.WMENC_VIDEO); vidsrc2.SetInput("ScreenCap://ScreenCapture1","",""); m_bag = new PropertyBag.BagInterface(vidsrc2); Console.Write("Testing: "); if (!WriteProperty(CaptureProperty.EntireScreen,true)) { bReturn = false; } if (!WriteProperty(CaptureProperty.EntireScreen,false)) { bReturn = false; } if (!WriteProperty(CaptureProperty.FlashTheRectangle,true)) { bReturn = false; } if (!WriteProperty(CaptureProperty.FlashTheRectangle,false)) { bReturn = false; } if (!WriteProperty(CaptureProperty.Top,200)) { bReturn = false; } if (!WriteProperty(CaptureProperty.Left,200)) { bReturn = false; } if (!WriteProperty(CaptureProperty.Right,800)) { bReturn = false; } if (!WriteProperty(CaptureProperty.Bottom,600)) { bReturn = false; } if (!WriteProperty(CaptureProperty.CaptureWindow,0x432)) { bReturn = false; } if (!WriteProperty(CaptureProperty.WindowTitle,"TestThis")) { bReturn = false; } return bReturn; }
public bool SetupEncoder(CapturePerformance ScreenCapturePerformance, ScreenEncoder.CaptureType ScreenCaptureType, params System.Object[] ParameterArray) { string sWMEFile ; switch (ScreenCapturePerformance) { case CapturePerformance.Extreme: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_1000k_30fps.wme"; break; case CapturePerformance.VeryHigh: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_700k_25fps.wme"; break; case CapturePerformance.High: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_341k_15fps.wme"; break; case CapturePerformance.MediumHigh: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_250k_15fps.wme"; break; case CapturePerformance.Medium: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_93k_10fps.wme"; break; case CapturePerformance.Low: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_32k_5fps.wme"; break; case CapturePerformance.VeryLow: sWMEFile = m_sProfileDirectory + "\\" + "ScreenCapture_13k_3fps.wme"; break; default: //log.WriteLog("SignalType must be a valid OysterEncoder.VideoSignalType"); return false; } m_sWMEFilename = sWMEFile; // m_bIsEncoderStreaming = false; // verify that the WMEFilename is exists if (!System.IO.File.Exists(sWMEFile)) { //log.WriteLog(sWMEFile + " does not exist."); return false; } // initialize the Winnov capture card on the specified channel // by setting the source index for both audio and video // initialize the WMEncoder // load the WMEFilename into the WMEncoder m_encoder.Load(sWMEFile); // prepare the WMEncoder // m_encoder.EnableAutoArchive = false; m_encoder.PrepareToEncode(true); // m_videosource2 = (WMEncoderLib.IWMEncVideoSource2) // m_encoder.SourceGroupCollection.Add("SourceGroup").AddSource(WMEncoderLib.WMENC_SOURCE_TYPE.WMENC_VIDEO); // m_videosource2.SetInput("ScreenCap://ScreenCapture1","",""); m_videosource2 = (WMEncoderLib.IWMEncVideoSource2) m_encoder.SourceGroupCollection.Item("Screen") .get_Source(WMEncoderLib.WMENC_SOURCE_TYPE.WMENC_VIDEO,0); m_bag = new PropertyBag.BagInterface(m_videosource2); switch (ScreenCaptureType) { case ScreenEncoder.CaptureType.FullScreen: WriteProperty(ScreenEncoder.CaptureProperty.EntireScreen,true); break; case ScreenEncoder.CaptureType.WindowByHandle: WriteProperty(ScreenEncoder.CaptureProperty.CaptureWindow,(System.IntPtr)((CarverLab.Utility.Window)ParameterArray[0]).hwnd); break; case ScreenEncoder.CaptureType.WindowByName: WriteProperty(ScreenEncoder.CaptureProperty.WindowTitle,(string)((CarverLab.Utility.Window) ParameterArray[0]).WindowText); break; default: break; } // start the WMEncoder streaming //m_encoder.Start(); //m_bIsEncoderStreaming = true; // end routine return true; }