![]() |
Mikrofon (de)aktivieren
Hallo!
Ich möchte mein Mikrofon aktivieren und deaktivieren können (Da meine audiodg.exe bei aktiviertem Mikrofon permanent 8% Auslastung erzeugt). Leider ist das Mikrofon nicht im Gerätemanager aufgelistet, es gehört scheinbar zu einem anderen Gerät dazu. Es kann nur mit Systemsteuerung->Sound->Aufnahmegeräte einzeln deaktiviert werden. Gibt es eine Möglichkeit das mit einem Delphi-Programm oder einer Batch-Datei zu machen? Grüße blablab |
AW: Mikrofon (de)aktivieren
Es gibt ein Tool. Nennt sich DevCon und kann man bei
![]() Vielleicht hilft dir das ja weiter. Aber ich würde mich an deiner Stelle auch mal fragen, wie diese Dauerauslastung zustande kommt. Vielleicht solltest du mal nach einem Treiberupdate suchen. Passiert das nur wenn ein bestimmtes Programm offen ist oder ist diese Auslastung schon beim Systemstart zu sehen? Analysiere das mal genauer und gib nochmal Rückmeldung. Vielleicht findet sich ja eine bessere Lösung, als einfach das Mikrofon zu deaktivieren. |
AW: Mikrofon (de)aktivieren
Die hohe Auslastung kommt wahrscheinlich von meiner schlechten Soundkarte. Auch wenn ich Musik abspiele ist die Auslastung sehr hoch (um die 5%). Selbst nachdem ich pause drücke bleibt die hohe Auslastung, erst nach Stopp sinkt sie wieder.
Die Treiber sind maximal 0,5 Jahre alt. Ich kann später noch nach neuen schauen, aber deaktivieren würde ich das Mikro gerne trotzdem. Denn abgesehen davon möchte ich das Mikro auch gerne ausschalten wenn ich es nicht benötige. Ich benutze es vielleicht einmal die Woche, da muss es nicht rund um die Uhr eingeschaltet sein. Ob nun Mute oder ganz Ausschalten ist dann wahrscheinlich Geschmackssache, mir wäre das Ausschalten lieber. Auf DevCon bin ich schon gestoßen. Allerdings muss das Gerät im Gerätemanager aufgelistet sein, damit ich es hiermit (de)aktivieren kann. Ich vermute aber, dass mein Mikrofon kein wirkliches Gerät ist und das Deaktivieren des Mikrofons etwas ganz anderes ist wie das Deaktivieren eines wirklichen Gerätes. Ich werde auch nicht nach einem Neustart gefragt und es geht auch viel schneller. Ich denke einfach das "Gerät deaktivieren" im Gerätemanager hat nichts zu tun mit dem "Aufnahmegerät deaktivieren" in Systemsteuerung->Sound. Denn dann müsste ja auch danach ein deaktiviertes Gerät im Gerätemanager auftauchen, das tut es aber nicht. |
AW: Mikrofon (de)aktivieren
Hi,
such mal nach TAudiomixer (Freeware) ..damit sollte es klappen |
AW: Mikrofon (de)aktivieren
Zitat:
hier mal ein Beispiel fuer LineIn
Delphi-Quellcode:
unit UMonitor_ON;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} uses MMSystem; function GetMonitoring( Mixer: hMixerObj; var Control: TMixerControl): MMResult; // Returns True on success var Line: TMixerLine; Controls: TMixerLineControls; begin ZeroMemory(@Line, SizeOf(Line)); Line.cbStruct := SizeOf(Line); Line.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_LINE; //LineIN Result := mixerGetLineInfo(Mixer, @Line, MIXER_GETLINEINFOF_COMPONENTTYPE); if Result = MMSYSERR_NOERROR then begin ZeroMemory(@Controls, SizeOf(Controls)); Controls.cbStruct := SizeOf(Controls); Controls.dwLineID := Line.dwLineID; Controls.cControls := 1; // Controls.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE; Controls.dwControlType := MIXERCONTROL_CONTROLTYPE_ONOFF; //checkbox Monitoring 1 Controls.cbmxctrl := SizeOf(Control); Controls.pamxctrl := @Control; Result := mixerGetLineControls(Mixer, @Controls, MIXER_GETLINECONTROLSF_ONEBYTYPE); end; end; procedure SetMonitoringValue( Mixer: hMixerObj; Value: Boolean); var Monitoring: TMixerControl; Details: TMixerControlDetails; BoolDetails: TMixerControlDetailsBoolean; Code: MMResult; begin Code := GetMonitoring(0, Monitoring); if Code = MMSYSERR_NOERROR then begin with Details do begin cbStruct := SizeOf(Details); dwControlID := Monitoring.dwControlID; cChannels := 1; cMultipleItems := 0; cbDetails := SizeOf(BoolDetails); paDetails := @BoolDetails; end; LongBool(BoolDetails.fValue) := Value; Code := mixerSetControlDetails(0, @Details, MIXER_SETCONTROLDETAILSF_VALUE); end; if Code <> MMSYSERR_NOERROR then raise Exception.CreateFmt('SetMonitoringValue failure, '+ 'multimedia system error #%d', [Code]); end; procedure TForm1.Button1Click(Sender: TObject); var Monitoring: TMixerControl; Code: MMResult; begin SetMonitoringValue(0,True);//TRUE=ON FALSE=OFF end; end. |
AW: Mikrofon (de)aktivieren
Leider funktioniert das Code-Beispiel bei mir aus 2 Gründen nicht:
1) Mit Controls.dwControlType := MIXERCONTROL_CONTROLTYPE_ONOFF gibt mixerGetLineControls() den Fehler Nr 2 zurück. (Mit MIXERCONTROL_CONTROLTYPE_MUTE funktioniert es) 2) mixerGetLineInfo() funktioniert nur, wenn das Mikrofon nicht aktiviert ist. Dementsprechen könnte ich das Mikro gar nicht mehr aktivieren, wenn das deaktivieren funktionieren würde. Auch TAudioMixer funktioniert nicht. Das Mikrofon ist bei mir Mixer Nr. 2 und sobald ich das Mikrofon deaktiviere, verschwindet der Mixer Nr. 2. Ich sollte den Thread wohl in "Mixer (de)aktivieren" umbenennen, allerdings weiß ich nicht wie das geht... |
AW: Mikrofon (de)aktivieren
Schau dir mal
![]() Ich hab keine Zeit und im mom auch keine Lust mich da weiter drum zu kümmern :stupid: |
AW: Mikrofon (de)aktivieren
Juhu, es funktioniert!
Vielen, vielen Dank lbccaleb!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz