Установите gstreamer-sharp для Xamarin Studio (Gtk #) - программирование
Подтвердить что ты не робот

Установите gstreamer-sharp для Xamarin Studio (Gtk #)

Мне нужно установить gstreamer-sharp для Xamarin Studio (проект Gtk #). Я установил OSSBuild и добавлю ссылки на gstreamer-sharp.dll, после отладки у меня возникло исключение:

Gst.GLib.GException: нет элемента "playbin" в Gst.Parse.Launch(String pipeline_description)

Вывод:

0:00:00.010000000  6224   0748AA00 ERROR           GST_REGISTRY gstregistrybinary.c:557:gst_registry_binary_read_cache: Binary registry type not recognized (invalid magic) for file at C:\Users\Admin\.gstreamer-0.10\registry.i686.bin

** (gStremTest:6224): WARNING **: Failed to load plugin 'C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\bin\libgsf-win32-1-114.dll': `C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\bin\libgsf-win32-1-114.dll': Не найден указанный модуль.

** (gStremTest:6224): WARNING **: Failed to load plugin 'C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\bin\libpangocairo-1.0-0.dll': `C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\bin\libpangocairo-1.0-0.dll': Не найдена указанная процедура.

** (gStremTest:6224): WARNING **: Failed to load plugin 'C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\bin\librsvg-2-2.dll': `C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\bin\librsvg-2-2.dll': Не найден указанный модуль.
0:00:02.501003000  6224   0748AA00 ERROR           GST_PIPELINE grammar.tab.c:1975:_gst_parse_yyparse: no element "playbin"
0:00:02.501003000  6224   0748AA00 ERROR           GST_PIPELINE grammar.tab.c:2564:_gst_parse_launch: Unrecoverable syntax error while parsing pipeline playbin uri=http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/Sintel_Trailer1.1080p.DivX_Plus_HD.mkv
Loaded Module 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ru_b77a5c561934e089\mscorlib.resources.dll'

код:

    Gst.Application.Init ();
    GLib.MainLoop Loop;
    Gst.Element element;
    Loop = new GLib.MainLoop();
    element = Gst.Parse.Launch("playbin uri=http://ftp.nluug.nl/ftp/graphics/blender/apricot/trailer/Sintel_Trailer1.1080p.DivX_Plus_HD.mkv");
    element.Bus.AddSignalWatch();
    element.SetState( Gst.State.Playing);
    Loop.Run();

Я понимаю, это только моя ошибка, поэтому мне не нужно это исправлять, мне нужно переустановить gstreamer-sharp и правильно использовать его в Xamarin. Как это делается правильно?

P.S. Я думаю, было бы неплохо, если бы люди, которые его установили для .Net, тоже могли дать мне совет.

4b9b3361

Ответ 1

Мне пришлось использовать другой код. Этот код работает нормально:

        Gst.Application.Init ();
        var pipeDescription = "playbin uri=file:///a:/test.avi ";
        var pipeline = Gst.Parse.Launch(pipeDescription) as Gst.Bin; 
        var someElementInPipe = pipeline.GetChildByName("myBin") as Gst.Element;
        pipeline.SetState(Gst.State.Playing);

Ответ 2

К сожалению, gstreamer-sharp v.0.10 не поддерживается. В настоящий момент ни одна версия не может делать то, что вы хотите, но как только версия 1.0 будет выпущена, она будет полностью поддерживаться в Windows, Android и Linux.

V.1.0 должен быть выпущен в течение следующих 2 месяцев в соответствии с их сайтом.