Ejemplo n.º 1
0
        /// <summary>
        /// Vaizdo medžiagos gavimas ir atvaizdavimas.
        /// </summary>
        /// <param name="vlcControl">Vaizdo grotuvo kontrolė</param>
        /// <param name="mode">Vaizdo medžiagos rėžimas</param>
        /// <param name="channel">Kameros ID</param>
        /// <param name="startTime">Vaizdo įrašo pradžios laikas</param>
        /// <param name="endTime">Vaizdo įrašo pabaigos laikas</param>
        public static void PlayVideo(VlcControl vlcControl, VideoMode mode, int channel, DateTime?startTime, DateTime?endTime)
        {
            string   sourceURL = "";
            Settings settings  = SettingsController.GetSettings();

            switch (mode)
            {
            case VideoMode.Stream:
                sourceURL = string.Format(Properties.Resources.streamURL, settings.NVRUsername, settings.NVRPassword, settings.NVRIP, settings.NVRPort, channel);
                break;

            case VideoMode.Recording:
                string startTimeString = startTime.Value.ToString("yyyyMMddTHHmmssZ");
                string endTimeString   = endTime.Value.ToString("yyyyMMddTHHmmssZ");
                sourceURL = string.Format(Properties.Resources.recordingURL, settings.NVRUsername, settings.NVRPassword, settings.NVRIP, settings.NVRPort, channel, startTimeString, endTimeString);
                break;
            }

            try
            {
                var task = Task.Run(() =>
                {
                    vlcControl.SetMedia(new Uri(sourceURL));
                    vlcControl.Play();
                });

                if (task.Wait(TimeSpan.FromSeconds(10)))
                {
                    return;
                }
                else
                {
                    MessageBox.Show(Properties.Strings.errNoVideo, Properties.Strings.errTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch
            {
                MessageBox.Show(Properties.Strings.errNoVideo, Properties.Strings.errTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }