Laden...

Sound ausschalten bei Bildschirmschoner (DirectX.AudioVideoPlayback)

Erstellt von byoernn vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.940 Views
Thema geschlossen
B
byoernn Themenstarter:in
4 Beiträge seit 2012
vor 10 Jahren
Sound ausschalten bei Bildschirmschoner (DirectX.AudioVideoPlayback)

Guten Tag,

ich habe einen kleinen Bildschirmschoner erstellte, welcher ein Video abspielt.
Lese die Settings aus und dann setze das Volume des Videos aus stumm.

Im der Vorschau funktioniert alles super, aber sobald der Bildschirmschoner nun zum einsatz kommt und von windows aktiviert wird nach der angegebenen Zeit wird das Volume nicht mehr reduziert.
Hier ein Ausschnitt des Codes:


public Screensaver()
        {
            InitializeComponent();
            this.MouseMove +=new MouseEventHandler(Screensaver_MouseMove);
            this.MouseDown += new MouseEventHandler(Screensaver_MouseDown);
            this.KeyDown += new KeyEventHandler(Screensaver_KeyDown);
            checkSettings();
            this.oVid.Owner = this;
            this.oVid.Size = this.Size;

            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            Cursor.Hide(); // Hide Mousepointer
            this.Bounds = Screen.PrimaryScreen.Bounds;
            TopMost = true; // Form get first Position in the screen
        }

  private void Screensaver_Load(object sender, EventArgs e)
            // Play the video once.
            this.oVid.Play();
        }

        private void checkSettings()
        {
            // get the Settings from the SettingsFile
            string language = Properties.Settings.Default.Language;
            bool sound = Properties.Settings.Default.Sound;
            
            //Check for the Choosen language
            switch (language)
            {
                case "DE": oVid = new Video(GetTempFileFromBytes(Properties.Resources.DE)); break;
                case "EN": oVid = new Video(GetTempFileFromBytes(Properties.Resources.EN)); break;
                case "SP": oVid = new Video(GetTempFileFromBytes(Properties.Resources.SP)); break;
                case "PL": oVid = new Video(GetTempFileFromBytes(Properties.Resources.PL)); break;
                default: oVid = new Video(GetTempFileFromBytes(Properties.Resources.DE)); break;
            }
            oVid.Audio.Volume = 0;
            // Volume default ist 0;Loudest value = 0, Mute value = -10000
            if (sound == false)
                oVid.Audio.Volume = -10000; 
    
}

Hat jemand eine schlaue Lösung für das Problem?

F
3 Beiträge seit 2013
vor 10 Jahren

Hi byoernn,

ich nehme mal an, dass die if-Abrage

if (sound == false)
                 oVid.Audio.Volume = -10000;

Probleme macht.
Du setzt ja vorher

oVid.Audio.Volume = 0;

(also volle Lautstärke) fest. Hast du schon versucht es gleich auf -10000 zu setzen? 😃

B
byoernn Themenstarter:in
4 Beiträge seit 2012
vor 10 Jahren

Ja er ignoriert die If anweisung. jedoch frage ich mich warum er es so macht.
habe es auch schon auf -10000 gestellt. dann ist das programm halt immer stumm.

64 Beiträge seit 2012
vor 10 Jahren

Hast du denn einfach mal gedebuggt was in sound drin steht ?

Zudem schreibt man nicht :

if(sound ==false)

sondern

if(!sound)

siehe [Tipp] Anfängerfehler == true / == false

Und Crossposts sind hier nicht so gern gesehen..

Sound ausschalten bei Bildschirmschoner (DirectX.AudioVideoPlayback)

++Rekursion ++
(lat. , die) siehe Rekursion

Warnung von Abt vor 10 Jahren

[Hinweis] Wie poste ich richtig? 2.2

Thema geschlossen