AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zuweisung der Hauptlautstärke
Thema durchsuchen
Ansicht
Themen-Optionen

Zuweisung der Hauptlautstärke

Ein Thema von EWeiss · begonnen am 28. Jan 2017 · letzter Beitrag vom 4. Feb 2017
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 17:46
Zitat:
eine Trackbar für die Lautstärke und eine Trackbar für links/rechts . . .
Ja wie in den Bildern gezeigt.

Dabei wird aber nicht berücksichtigt das wenn der linke bzw. rechte Kanal auf 0 steht
und ich dann diesen betätige der nicht 0 ist geht auch die Gesamtlautstärke runter und umgekehrt.
Zudem kann die Lautstärke auch 25 betragen destotrotz muss sich dann der rechte und linke Kanal Trackbar.Max gegeben falls anpassen.

Das ist einer der gründe warum ich die MaxVolPos des Slider ermittel um damit wenn möglich die Trackbar.Max Position zu verändern.
Das bereitet mir zur zeit noch Probleme weil in dem Fall der Lautstärkeregler sich ändert.
Das soll er aber nicht.

Kann man selbst testen wenn man die Regler seiner Soundkarte verändert.

Danke.
Wie gesagt muss noch was tüfteln mit der Zeit komme ich schon auf den Trichter
Die Daten sind ja alle da muss sie nur richtig einsetzen.

gruss

Geändert von EWeiss (29. Jan 2017 um 17:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#2

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 18:00
in diesem Fall musst Du wohl dann den Wert vor der Änderung (links / rechts) zwischenspeichern
und die Differenz nach dem li/re-Regeln wieder aufaddieren bzw. subtrahieren.
Ich habe aus diesem Grund meine Rechts-Links-Slider praktisch als "Schleppzeiger" angelegt,
d.h. beide Kanalregler folgen dem Hauptlautstärkeregler mit Ihrer aktuell eingestellten prozentualen
Differenz bis 1.0 oder 0 - woraus sich aber auch ein Regler (Trackbar) ableiten ließe.
Markus H.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 18:03
in diesem Fall musst Du wohl dann den Wert vor der Änderung (links / rechts) zwischenspeichern
und die Differenz nach dem li/re-Regeln wieder aufaddieren bzw. subtrahieren.
Ich habe aus diesem Grund meine Rechts-Links-Slider praktisch als "Schleppzeiger" angelegt,
d.h. beide Kanalregler folgen dem Hauptlautstärkeregler mit Ihrer aktuell eingestellten prozentualen
Differenz bis 1.0 oder 0 - woraus sich aber auch ein Regler (Trackbar) ableiten ließe.
Ich lade mal eine Testversion hoch.
Testen tue ich das in dem ich die Registerkarte meiner Soundkarte öffne um dann zu verfolgen was dort geschieht.
Wenn ich jetzt keine Lösung finde kann es halt zur Final noch etwas dauern. (Kein Problem für mich.)

gruss
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#4

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 18:16
Ich lade mal eine Testversion hoch.
Testen tue ich das in dem ich die Registerkarte meiner Soundkarte öffne um dann zu verfolgen was dort geschieht.
Wenn ich jetzt keine Lösung finde kann es halt zur Final noch etwas dauern. (Kein Problem für mich.)

gruss
o.k. runtergeladen, ausprobiert, verstanden ...

den Effekt habe ich nicht, da ich die Lautstärke über
endpointVolume.SetChannelVolumeLevelScalar(0, OldLeft, nil);
endpointVolume.SetChannelVolumeLevelScalar(1, OldRight, nil);
setze.
Markus H.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 18:21
Ich lade mal eine Testversion hoch.
Testen tue ich das in dem ich die Registerkarte meiner Soundkarte öffne um dann zu verfolgen was dort geschieht.
Wenn ich jetzt keine Lösung finde kann es halt zur Final noch etwas dauern. (Kein Problem für mich.)

gruss
o.k. runtergeladen, ausprobiert, verstanden ...

den Effekt habe ich nicht, da ich die Lautstärke über
endpointVolume.SetChannelVolumeLevelScalar(0, OldLeft, nil);
endpointVolume.SetChannelVolumeLevelScalar(1, OldRight, nil);
setze.
Ich denke mal ist nicht zu viel gesagt das dass nicht so einfach ist.
Aber manchmal kommt ein Geistesblitz dann funktioniert das

Das setzen des rechten und linken Kanal ist kein Problem solange die Lautstärke 100% ist
Setzt man diese runter kann man beim ändern der Balance sehen das sich der Lautstärkeregler ändert. (Was er nicht soll)
Dafür ermittle ich die MasterVolPos um damit dieses Manko noch ausbügeln zu können.
Nur wie gesagt habe dafür noch keine Lösung.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#6

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 18:30
...
Das setzen des rechten und linken Kanal ist kein Problem solange die Lautstärke 100% ist
Setzt man diese runter kann man beim ändern der Balance sehen das sich der Lautstärkeregler ändert. (Was er nicht soll)
Dafür ermittle ich die MasterVolPos um damit dieses Manko noch ausbügeln zu können.
Nur wie gesagt habe dafür noch keine Lösung.

gruss
Die Lautstärke ändert sich bei mir nicht - solange die einzelnen Kanäle nicht über den Wert
der Lautstärke geregelt werden - für mich war das damals der beste Weg.
siehe Screenshots
Angehängte Grafiken
Dateityp: jpg 01.JPG (57,2 KB, 16x aufgerufen)
Dateityp: jpg 02.JPG (58,2 KB, 14x aufgerufen)
Dateityp: jpg 03.JPG (58,0 KB, 13x aufgerufen)
Markus H.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Zuweisung der Hauptlautstärke

  Alt 29. Jan 2017, 18:34
Zitat:
Die Lautstärke ändert sich bei mir nicht - solange die einzelnen Kanäle nicht über den Wert
der Lautstärke geregelt werden - für mich war das damals der beste Weg.
Ja das glaube ich dir weil du für jeden Regler eine Trackbar verwendest das ist bei mir genau so.
Ich kann aber in der Komponente aus Platzgründen keine 2 zusätzliche Trackbars einbauen.

Aber zu einer Lautstärkesteuerung gehört nun mal die Balance dazu.

PS:
Ich würde aber an deiner stelle für
endpointVolume.SetChannelVolumeLevelScalar(0, OldLeft, nil);

eine gültige GUIDE vergeben bedenke es könnten auch andere Programme zur gleichen zeit die Lautstärke regeln.
Die GUIDE ist dafür gedacht zwischen den einzelnen Prozessen zu unterscheiden. (EventContext)

Zitat:
Context value for the IAudioEndpointVolumeCallback::OnNotify method. This parameter points to an event-context GUID. If the SetChannelVolumeLevelScalar call changes the volume level of the endpoint, all clients that have registered IAudioEndpointVolumeCallback interfaces with that endpoint will receive notifications. In its implementation of the OnNotify method, a client can inspect the event-context GUID to discover whether it or another client is the source of the volume-change event. If the caller supplies a NULL pointer for this parameter, the notification routine receives the context GUID value GUID_NULL.
Bedenke das nochmal..
Wenn du keine IAudioEndpointVolumeCallback verwendest so wie wir dann nutze GUID_NULL.

gruss

Geändert von EWeiss (29. Jan 2017 um 18:50 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz