Audio Peak - Mono Signale anzeigen

Aug 25, 2013 at 10:11 PM
Hallo,

(übersichtshalber fange ich mal einen neuen Thread an)

momentan habe ich mein Peak von den verschiedenen Audio Devices. Nun würde ich gerne noch sowohl vom rechten, als auch vom linken Signal den Ausschlag anzeigen lassen.

Ist dies mit der Lib möglich?

Gruß
Leon
Coordinator
Aug 25, 2013 at 11:18 PM
Die Klasse AudioPeakInformation hat eine eigenschaft MeteringChannelCount. Verwende diese in Kombination mit dem überladenen Indexoperator:
for(int i = 0; i < meter.MeteringChannelCount; i++)
{
    float peak = meter[i];
}

For i = 0 To meter.MeteringChannelCount
    Dim peak As Single = meter(i)
Next
Alternativ kannst du auch die GetChannelsPeakValues-Methode verwenden:
foreach(float peak in meter.GetChannelsPeakValues())
{
    
}
Oct 9, 2013 at 7:51 PM
Hallo,

dazu hätte ich gleich 2 Fragen:

in welcher Einheit ist der Peak wert? DB ?
Wann und wie oft muss man diesen Wert abfragen?

Könntest Du eventuell ein kleines Beispiel erstellen wo man einfach ein Audiofile abspielt, und die aktuelle Lautstärke sieht?


Vielen Dank!
Coordinator
Oct 10, 2013 at 11:31 PM
Der Wert DB ist wie der Name schon sagt in Dezibel. Wenn es nur um den von DIR abgespielten Stream(bzw. Datei) geht, dann brauchst du das alles nicht. Der Code von oben bezieht sich auf den aktuellen Peak des gesamten Gerätes.
Du kannst dir folgendes Beispiel anschauen: https://cscore.codeplex.com/SourceControl/changeset/view/936b50ce9a96b79f9af110149c3d1315459bcd5d#Samples/Recorder/MainWindow.cs
Das ist zwar eine Aufnahme, jedoch lässt sich exakt das Selbe Prinzip auch auf Ausgabe anwenden.