none
使用 Interop.WMEncoderLib.dll做屏幕录像 RRS feed

  • 问题

  • IWMEncSourceGroupCollection SrcGrpColl;
                IWMEncSourceGroup2 SrcGrp;
                IWMEncAudioSource SrcAud;  //音频
                IWMEncVideoSource2 SrcVid; //视频
                IWMEncProfile2 Pro;
                enc = new WMEncoderClass();
                try
                {
                    SrcGrpColl = enc.SourceGroupCollection;
                    SrcGrp = (IWMEncSourceGroup2)SrcGrpColl.Add("SG_1");
                    SrcVid = (IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
                    if (ckbSound.Checked)  
                    { 
                        SrcAud = (IWMEncAudioSource)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
                        SrcAud.SetInput("Default_Audio_Device", "DEVICE", "");
                    }
                    SrcVid.SetInput("ScreenCapture1", "ScreenCap", "");
                    Pro =  GetSelectProfile();
                    SrcGrp.set_Profile(Pro);
                    
                    enc.File.LocalFileName = System.IO.Directory.GetCurrentDirectory()+"\\video.wma"; 
                    this.WindowState = FormWindowState.Minimized;
                    enc.Start();

    从网上找的源码提出重要代码

    enc = new WMEncoderClass();

    执行到此句时 程序强制关闭。

    弹出错误信息 vshost32.exe 已停止工作

    错误存储段 ,类型 0
    事件名称: BEX
    响应: 不可用
    Cab ID: 0

    问题签名:
    P1: WMERecord.vshost.exe
    P2: 10.0.30319.1
    P3: 4ba2084b
    P4: StackHash_23fe
    P5: 0.0.0.0
    P6: 00000000
    P7: 046f06e8
    P8: c0000005
    P9: 00000008
    P10:

    附加文件:

    可在此处获取这些文件:
    C:\Users\ntbbit-1\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_WMERecord.vshost_136afd65c28758ba9bc4668647f0edf575f3_0f14472f

    分析符号:
    重新检查解决方案: 0

    本人新手 第一次发帖 如有不对之处 还望指正。




    • 已编辑 dgtg77 2012年10月13日 2:50
    2012年10月13日 2:41

答案

  • enc是 WMEncoderClass

    后来找到解决方法 win7使用WME会导致VS奔溃 安装了补丁就好了

    http://support.microsoft.com/kb/929182/en-us


    谢谢回答。


    • 已编辑 dgtg77 2012年10月20日 7:05
    • 已标记为答案 dgtg77 2012年10月20日 7:05
    2012年10月20日 7:01

全部回复

  • 你的enc是什么类型的?在哪里声明的?

    Cheers, Amy

    2012年10月16日 9:34
  • enc是 WMEncoderClass

    后来找到解决方法 win7使用WME会导致VS奔溃 安装了补丁就好了

    http://support.microsoft.com/kb/929182/en-us


    谢谢回答。


    • 已编辑 dgtg77 2012年10月20日 7:05
    • 已标记为答案 dgtg77 2012年10月20日 7:05
    2012年10月20日 7:01
  • enc是 WMEncoderClass

    后来找到解决方法 win7使用WME会导致VS奔溃 安装了补丁就好了

    http://support.microsoft.com/kb/929182/en-us


    谢谢回答。



    您好,我安装了补丁之后,还是报错。我的是WIN8系统。错误信息如下:检索 COM 类工厂中 CLSID 为 {632B606A-BBC6-11D2-A329-006097C4E476} 的组件时失败,原因是出现以下错误: 80040154。

    田田qq:764574267

    2014年7月8日 10:34
  • 我的也出现同样的问题,请问阁下找到解决方法了没?能否分享一下?
    2015年12月1日 3:27