在Gstreamer 0.10中创建Null实例

时间:2015-01-13 02:32:21

标签: c# .net gstreamer

成功安装了ossbuild GStreamer以享受G#的Gstreamer。

步骤总结如下:

  1. 下载 GStreamer-WinBuilds-GPL-x86-Beta04-0.10.7.msi GStreamer-WinBuilds-SDK-GPL-x86-Beta04-0.10.7.msi 来自https://code.google.com/p/ossbuild/downloads/list(或者您可以下载支持较少插件的LGPL许可证对)
  2. 然后安装前者,然后安装后者。
  3. 然后你可以在这里找到gstreamer-sharp .NET参考文件 gstreamer-sharp.dll

    C:\ Program Files(x86)\ OSSBuild \ GStreamer \ version_variable \ sdk \ bindings \ dotnet \ gstreamer-sharp.dll

  4. 需要在项目中添加另一个粘贴文件 gstreamersharpglue-0.10.dll ,并将其设置为“始终复制”或“如果更新则复制”以使gstreamer-sharp在Windows中运行。

  5. 但是当我尝试运行示例代码(使用Gst;)时,它有异常。

    var pipeline = new Gst.Pipeline();
    //always have null instance here
    var elementA = Gst.ElementFactory.Make("videotestsrc");
    //exceptions happens
    elementA["pattern"] = 18; 
    

1 个答案:

答案 0 :(得分:0)

//must have
Gst.Application.Init();
var pipeline = new Gst.Pipeline();
//if don't have Gst.Application.Init(), it will always have null instance here
var elementA = Gst.ElementFactory.Make("videotestsrc");
//if no exceptions happens here then everything should be fine
elementA["pattern"] = 18; 

如果Gst.Application.Init();触发无法找到python26.dll的错误,请通过安装python 2.6解决,并在项目中添加python26.dll。

请记住使用Gst.Application.Init();初始化,我花了2天时间来解决null实例。最后,由于GStreamer及其绑定是针对x86架构编译的,因此强制构建 x86 的.NET程序集。