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.
Fuzzi59 schrieb: > Wenn das Programm startet soll es den wert der Lautstärke ausgeben Er meinte, ob du den Wert der im System eingestellten Lautstärke meinst oder vielleicht den Wert (Pegel) des wiedergegebenen Tones?
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
Als Beispiel, wenn das Mikrofon einen Ton wahrnimmt soll es mit der Aufnahme beginnen. Ich meine nicht die Soundeinstellungen vom System
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.
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.
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);
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.