c# Lautstärke messen

Gast #3604850
Lesenswert?
• ▲
▼
Hallo ich möchte den Wert der momentanen Lautstärke haben, aber auch nur 
den Wert ohne Visualisierung usw.
[DLLImport("winmm.dll")] hab ich schon, aber da muss man einen 
Windowsbefehl ausführen, wie z.B beim Aufnehmen, da muss ich erst diese 
Variable(oder was das ist) erstellen
 private static extern int mciSendString(string lpstrCommand, string 
lpstrReturnString, int uReturnLength, int hwndCallback);
und im button dann so was:
            mciSendString("open new Type waveaudio Alias recsound", "", 
0, 0);
            mciSendString("set recsound CHANNELS 2", "", 0, 0);
            mciSendString("record recsound", "", 0, 0);
Jetzt würde ich gerne wissen, wie das bei der Lautstärke aussieht.
Gast #3607480
Lesenswert?
• ▲
▼
Ab Vista:
- Es gibt zu jeder Anwendung einen Lautstärkeregler im Windows-Mixer 
(+Peak-Meter)
- dazu den Master-Regler (+Peak-Meter)
- Für das aktuelle Aufnahmegerät gibt es auch eine 
(Aufnahme-)Lautstärke-Einstellung

Generell ist MCI ziemlich altbacken (War eigentlich schon bei Win2k/XP 
out).
Die Doku dazu findet man hier: 
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757151.aspx
Aktuell sind die CoreAudio-APIs: 
http://msdn.microsoft.com/en-us/library/windows/desktop/dd316780.aspx
Gast #3607598
Lesenswert?
• ▲
▼
Evtl. eher auf waveInOpen() oder neuer umsteigen.
Bei waveInOpen() kann man z.B. via Callback oder Window-Message direkt 
die Samples bekommen. Überschreitet ein Sample einen gewünschten 
Schwellwert könnte man dann einfach anfangen die Samples wegzuschreiben.
Gast #3607680
Lesenswert?
• ▲
▼
Aber wie komm ich an den Callback aus
private static extern int mciSendString(string lpstrCommand, string 
lpstrReturnString, int uReturnLength, int hwndCallback);
Beim Aufnehmen setze ich ihn ja auf 0.
Oder meinst du was anderes? Ich vertehe jetzt auch nicht was du genau 
meinst.
Gast #3607688
Lesenswert?
• ▲
▼
Ich glaub ich hab jetzt was brauchbares gefunden, ich weiß nur nicht was 
da einsetzen muss.
[DllImport("winmm.dll")]
        public static extern int waveInOpen(ref int lphWaveIn,int 
uDeviceID,ref WaveFormat lpFormat,int dwCallback,int dwInstance,int 
dwFlags);
Gast #3607751
Lesenswert?
• ▲
▼
In google "msdn FunktionsName" liefert üblicherweise die offizielle Doku 
mit Parameterbeschreibungen ;D
Je nach IDE auch Funktionsname markieren + F1
Bei codeproject findet man da bestimmt auch Code, der diese Funktionen 
benutzt.

Schau dir evtl. auch fertige Libs wie http://naudio.codeplex.com/ an, 
die z.B. waveInOpen() wrappen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren