Audio-Pegel der Soundkarte ermitteln

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Audio-Pegel der Soundkarte ermitteln

    Hallo liebe Community,

    Ich habe mittlerweile schon die eine oder andere Stunde mit googlen verbracht, aber funktioniert hat nichts. Ich suche eine Möglichkeit, den aktuellen Lautstärke-Pegel auszulesen/zu messen.

    Was viele anscheinend nicht verstehen, ich möchte NICHT:

    1. Einen Mikrofon-Eingang messen :thumbdown:
    2. Einen Sound abspielen und dessen Lautstärke messen :thumbdown:
    3. Die EINSTELLUNGEN für die Lautstärke auslesen :thumbdown:
    4. Den Stereomix messen, denn nicht jede Soundkarte unterstützt diese Funktion, und wenn, dann meistens deaktiviert :thumbdown:

    Ich möchte, einfach gesagt "Wissen wie laut das alles ist, was grade zu den Lautsprechern geschickt wird" :thumbsup:

    Eigentlich genau das, was zum Beispiel auch im Lautstärkemixer von Win7 als grüner Ausschlag unter "Lautsprecher" angezeigt wird. Ich hab es auch schon mit der Bass.dll versucht, aber die misst genau das, was ich unter 2. aufgeführt habe. Das muss doch irgendwie gehen, Windows kanns doch auch ;(


    lg, couka
    Leider noch nicht. Wollte es aber machen. Wenn es gewünscht ist, kann ich es noch "schnell" machen. Dann zieh ich das eben etwas anderem das ich gerade mache vor. Bis spätestens in ner Stunde wäre es dann fertig.
    So wollte das eh schon seit Ewigkeiten machen und jetzt ist es drinnen.
    In meiner Signatur befindet sich ein Link zu cscore.codeplex.com. Dort den neuesten Sourcecode laden. Die Projektmappe öffnen und das CSCore-Projekt erstellen. Nun findest du in .\CSCore\bin\Debug die CSCore.dll(oder im Release-ordner <- je nach dem was du willst). Diese Datei in den Verweisen deines Projektes hinzufügen.
    Oben Imports CSCore.CoreAudioAPI schreiben. Nun kannst du z.b. sowas machen:

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports CSCore.CoreAudioAPI
    3. Public Class Form1
    4. Private audioMeter As AudioMeterInformation
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. Timer1.Start()
    7. End Sub
    8. Private Sub Form1_FormClosing(sender As Object, e As Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    9. Timer1.Stop()
    10. If audioMeter IsNot Nothing Then
    11. audioMeter.Dispose()
    12. audioMeter = Nothing
    13. End If
    14. End Sub
    15. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    16. If audioMeter Is Nothing Then
    17. audioMeter = AudioMeterInformation.FromDevice(MMDeviceEnumerator.DefaultAudioEndpoint(DataFlow.Render, Role.Multimedia))
    18. End If
    19. ProgressBar1.Value = CInt(audioMeter.PeakValue * 100)
    20. End Sub
    21. End Class


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thefiloe“ ()

    Joa, wenn dus heute oder morgen machen könntest, wär absolut hammer :)

    Ich bin nämlich bei weitem nicht der einzige mit dem Problem, aber in den meisten Threads versteht keiner was der TO will und liefert eins der aufgeführten Lösungen :P

    lg, couka
    Haben oben editiert. Ist drinnen. Beispiel haste auch. Falls du noch fragen hast einfach hier fragen oder auf codeplex.
    Du kannst übrigens auch den Pegel jedes einzelnen Kanals bekommen. z.B. für den linken und für den rechten Lautsprecher. Dazu einfach die Item-Eigenschaft verwenden.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thefiloe“ ()