AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mikrofon Lautstärke für Wave-Aufnahme setzen
Thema durchsuchen
Ansicht
Themen-Optionen

Mikrofon Lautstärke für Wave-Aufnahme setzen

Ein Thema von hadschi92 · begonnen am 20. Mär 2011 · letzter Beitrag vom 26. Mai 2011
 
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#1

Mikrofon Lautstärke für Wave-Aufnahme setzen

  Alt 20. Mär 2011, 16:32
Ich programmiere gerade etwas um vom Mikrofon aufzunehmen. Gleich im Voraus, die bass.dll kann ich nicht nehmen, da das Programm eventuell kommerziell wird. Jetzt geht es darum, die Aufnahmelautstärke des Mikrofons zu verändern. Für die Ausgabe kann ich die Lautstärke schon ändern und zwar folgendermaßen:
Delphi-Quellcode:
function SetWaveVolume(const AVolume: DWORD): Boolean;
var
  WaveOutCaps: TWAVEOUTCAPS;
begin
  Result := False;
  if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
    if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
      Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
  LVol: Word;
  RVol: Word;
begin
  LVol := 30000; // max. is 65535
  RVol := 30000; // max. is 65535
  SetWaveVolume(MakeLong(LVol, RVol));
end;
Das funktioniert auch hervorragend, wie mache ich das ganze jedoch beim Mikrofon? In der mmSystem-Unit gibt es zwar die Funktion "WaveOutSetVolume", aber kein "WaveInSetVolume".
Folgenden Code habe ich auch schon ausprobiert: http://swissdelphicenter.ch/de/showcode.php?id=1204. Doch nach Get Line Info wird bei mir an dieser Stelle: intRet := mixerGetLineInfo(hMix, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE); intRet = 1024, sodass der restliche Code übersprungen wird. Im Code steht  if intRet = MMSYSERR_NOERROR then , heißt hier tritt irgendein Fehler auf.

Vielleicht ist der Code unter Windows 7 nicht mehr funktionell.

BTW: Mit diesen Funktionen nehme ich vom Mikrofon auf, funktioniert auch super:
Delphi-Quellcode:
mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mySound',nil,0,Handle);
mciSendString('SET mySound ' +
               'TIME FORMAT MS ' +
               'BITSPERSAMPLE 16 ' +
               'CHANNELS 2 ' +
               'SAMPLESPERSEC 44100 ' +
               'BYTESPERSEC 176400 ' +
               'ALIGNMENT 4',
               nil,0,handle);

mciSendString('RECORD mySound',nil,0,Handle);
Kann mir hier einer weiterhelfen?

Geändert von hadschi92 (20. Mär 2011 um 16:37 Uhr)
  Mit Zitat antworten Zitat
 


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 23:09 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