public void Start(double offsetTop, double offsetLeft, double width, double height, string location, string name)
        {
            VlcContext.StartupOptions.AddOption("--screen-top=" + offsetTop);
            VlcContext.StartupOptions.AddOption("--screen-left=" + offsetLeft);
            VlcContext.StartupOptions.AddOption("--screen-width=" + width);
            VlcContext.StartupOptions.AddOption("--screen-height=" + height);
            VlcContext.Initialize();
            vlcLocationMedia = new LocationMedia("screen://");
            vlcLocationMedia.AddOption(String.Format(vlcMediaOption, location + "\\" + name));
            audioRecorder.Init(location + "\\" + name);

            durationWatch.Reset();

            vlcControl = new VlcControl();
            vlcControl.Media = vlcLocationMedia;
            vlcControl.Playing += (sender, args) =>
            {
                durationWatch.Start();
                audioRecorder.Play();
            };
            vlcControl.Stopped += (sender, args) =>
            {
                durationWatch.Stop();
                audioRecorder.Stop();
            };
        }
Esempio n. 2
0
        public override void Load(Uri uri)
        {
            media = new LocationMedia(uri.AbsoluteUri);
            if (uri.Scheme == "dshow")
            {
                var nvc = uri.ParseQueryString();
                foreach (var key in nvc.AllKeys)
                {
                    media.AddOption(key + "=" + nvc[key]);
                }
            }

            media.StateChanged += OnMediaStateChange;

            bool doLoop = false;

            vlc.EncounteredError += (sender, args) =>
            {
                OnMediaFailed();
            };

            vlc.EndReached += (sender, args) =>
            {
                if (!loop)
                {
                    Stop();
                    OnPlaybackEnded();
                }
                else
                {
                    doLoop = true;
                }
            };

            vlc.Playing += (sender, args) =>
            {
                if (loop && doLoop)
                {
                    OnSeekStart();
                }
                doLoop = false;
            };

            vlc.Media = media;
        }