Laden...

Forenbeiträge von Timme Ingesamt 4 Beiträge

16.03.2020 - 16:16 Uhr

Perfekt die Antwort von Brymax hat mir geholfen,
inzwischen bin ich n ganzes stück weiter
und komme auch langsam mit customargs klar 😉
Dir und auch allen andern vielen Dank

LG Timme

16.03.2020 - 14:00 Uhr

Hi,

ich habe jetzt...


        public event EventHandler _VideoTimeChanged;


        protected virtual void On_VideoTimeChanged(EventArgs a)
        {
            _VideoTimeChanged?.Invoke(this, a);
        }

        public void Start_Content(string DateiPfad,bool isMuted= true )
        {
 
            string media = DateiPfad;
            _mp.Play(new Media(_libVLC, media, FromType.FromPath));
            if (isMuted != true) _mp.ToggleMute();
            
            On_VideoTimeChanged(EventArgs.Empty);
            
        }


... in der zweiten Form/Klasse Definiert

aber wo bzw wie übergebe ich das Object Event

_mp.TimeChanged

ich fürchte ich hab da etwas grundsätzliches nicht verstanden -.-

LG Timme

16.03.2020 - 12:49 Uhr

Hi, den Beitrag hab ich natürlich schon gefunden und ich sitz da auch schon 2 Tage davor ,was nicht heißt das die Lösung nicht trotzdem darin verborgen liegen kann, nur leider bekomme ich es in diesem Fall einfach nicht hin.

LG Timme

16.03.2020 - 12:34 Uhr

Moin, ich bin noch ganz frisch in c# .

Ich nutze VisualStudio 2019 als IDE falls das relavant werden sollte.

zum Problem:

Ich erstelle, in einer zweiten Form, ein "MediaPlayer" Object mit Hilfe der LibVLCSharp.Shared.
Das "MediaPlayer" Object hat mehrere Events die ich in der ersten Form auslösen möchte
z.B. für ne Progressbar , Timeleft anzeige.

das Event in der zweiten Form kann ich problemlos registrieren aber ich hab keine Schimmer wie ich ihn in der ersten Form Verfügbar mache.

Beide Forms sollen übrigends über die komplette Laufzeit erhalten bleiben.

hoffe ich hab das Thema hier Richtig erstellt

LG Timme


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
using System.IO;
using LibVLCSharp.Shared;
using Xamarin.Forms;


namespace SG
{
    public partial class MainGui : Form
    {
        
       public MainView newMainView = new MainView();



        private LibVLC _libVLC;
        public MainGui()
        {
            InitializeComponent();
            
            CheckMonitors();




        }


        private void CheckMonitors()
        {
            

            int MonitorCount = System.Windows.Forms.SystemInformation.MonitorCount;
            if (MonitorCount <= 1)
            {
                MessageBoxButtons buttons = MessageBoxButtons.OK;
                string caption = "Monitore";
                MessageBox.Show("Es wurde nur ein Monitor gefunden, sie bedindet sich im     Konfigurations Modus!",caption, buttons);
            }
            else
            {

                Screen[] screens = Screen.AllScreens;
                newMainView = new MainView();
                newMainView.Show();
                newMainView.Location = Screen.AllScreens[1].WorkingArea.Location;
                newMainView.WindowState = FormWindowState.Maximized;
                
                
                //newMainView.TopMost = true;



            }
        }

        private void sendText_Click(object sender, EventArgs e)
        {
            
            newMainView.Start_Content(@"F:\Movies\test.mkv", true);
            

        }

        private void StopVideo_Click(object sender, EventArgs e)
        {
            newMainView.Stop_Playback();
            this.progressBar1.Value =  0;
        }


    }

}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using LibVLCSharp.Shared;

namespace SG
{
    public partial class MainView: Form
    {
        private LibVLC _libVLC;
        private MediaPlayer _mp;



        public MainView()
        {

            Core.Initialize();
           InitializeComponent();
        }



        



        public void Start_Content(string DateiPfad,bool isMuted= true )
        {
            _libVLC = new LibVLC();
            _mp = new MediaPlayer(_libVLC);
            videoView1.MediaPlayer = _mp;
            string media = DateiPfad;
            _mp.Play(new Media(_libVLC, media, FromType.FromPath));
            if (isMuted != true) _mp.ToggleMute();
           
            //Mediplayer Event Registrieren
           _mp.TimeChanged += _mp_TimeChanged;
            
    }


        public long getTime()
        {
            long VideoTime = _mp.Length;
            return VideoTime;
        }
        public void Toggle_Mute()
        {
            _mp.ToggleMute();

        }

        public void Stop_Playback()
        {
            _mp.Stop();
        }

        void _mp_TimeChanged (object sender, MediaPlayerTimeChangedEventArgs a)
        {
           
            
        }
    }
}