AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mikrofon (de)aktivieren

Ein Thema von blablab · begonnen am 31. Mär 2013 · letzter Beitrag vom 2. Apr 2013
Antwort Antwort
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#1

Mikrofon (de)aktivieren

  Alt 31. Mär 2013, 11:49
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
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Mikrofon (de)aktivieren

  Alt 31. Mär 2013, 12:13
Es gibt ein Tool. Nennt sich DevCon und kann man bei Mircosoft runterladen.
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.
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Mikrofon (de)aktivieren

  Alt 31. Mär 2013, 12:40
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.
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Mikrofon (de)aktivieren

  Alt 31. Mär 2013, 12:48
Hi,

such mal nach TAudiomixer (Freeware) ..damit sollte es klappen
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Mikrofon (de)aktivieren

  Alt 31. Mär 2013, 13:37
Hi,

such mal nach TAudiomixer (Freeware) ..damit sollte es klappen
Nachtrag..mit dem Example den Mikrofoneingang suchen und ueber "unit MMSystem"..die Werte setzen

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.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Mikrofon (de)aktivieren

  Alt 1. Apr 2013, 17:34
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...

Geändert von blablab ( 1. Apr 2013 um 18:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Mikrofon (de)aktivieren

  Alt 1. Apr 2013, 21:43
Schau dir mal dieses Tool von mir an. Dort geht es zwar nicht um das Mikrofon, allerdings kann man das auch dafür nutzen. Das musst du dir dann allerdings selber zurecht bauen
Ich hab keine Zeit und im mom auch keine Lust mich da weiter drum zu kümmern
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Mikrofon (de)aktivieren

  Alt 2. Apr 2013, 03:23
Juhu, es funktioniert!

Vielen, vielen Dank lbccaleb!!!
  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 08:05 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