Ändern der Tonhöhe und Wiedergaberate
[Das dieser Seite zugeordnete Feature Waveform Audio ist ein Legacyfeature. Es wurde von WASAPI und Audio Graphs abgelöst. WASAPI- und Audiographen wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit WASAPI - und Audiographen anstelle von Waveform Audio verwenden sollte. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Einige Waveform-Audio-Ausgabegeräte können die Tonhöhe und die Wiedergaberate von Waveform-Audio-Daten variieren. Nicht alle Waveform-Audiogeräte unterstützen Tonhöhen- und Wiedergaberatenänderungen. Informationen zum Bestimmen, ob ein bestimmtes Waveform-Audiogerät Änderungen an der Tonhöhe und Wiedergaberate unterstützt, finden Sie unter Geräte und Datentypen.
Die Unterschiede zwischen der Änderung der Tonhöhe und der Wiedergaberate sind wie folgt:
- Das Ändern der Wiedergaberate wird vom Gerätetreiber ausgeführt und erfordert keine spezielle Hardware. Die Abtastrate wird nicht geändert, aber der Treiber interpoliert durch Überspringen oder Synthetisieren von Beispielen. Wenn die Wiedergaberate beispielsweise um den Faktor 2 geändert wird, überspringt der Treiber jedes andere Beispiel.
- Das Ändern der Tonhöhe erfordert spezielle Hardware. Die Wiedergaberate und die Abtastrate werden nicht geändert.
Windows bietet die folgenden Funktionen zum Abfragen und Festlegen von Waveform-Audio-Tonhöhen und Wiedergaberaten.
Funktion | BESCHREIBUNG |
---|---|
waveOutGetPitch | Ruft die Tonhöhe für das angegebene Waveform-Audioausgabegerät ab. |
waveOutGetPlaybackRate | Ruft die Wiedergaberate für das angegebene Waveform-Audio-Ausgabegerät ab. |
waveOutSetPitch | Legt die Tonhöhe für das angegebene Waveform-Audio-Ausgabegerät fest. |
waveOutSetPlaybackRate | Legt die Wiedergaberate für das angegebene Waveform-Audioausgabegerät fest. |
Die Tonhöhe und die Wiedergaberate werden durch einen Faktor geändert, der mit einer Festpunktzahl angegeben ist, die in einen Doppelwortwert gepackt ist. Die oberen 16 Bits geben den ganzzahligen Teil der Zahl an. die unteren 16 Bits geben den Teilbruch an. Beispielsweise wird der Wert 1,5 als 0x00018000L dargestellt. Der Wert 0,75 wird als 0x00000C000L dargestellt. Der Wert 1,0 (0x00010000) bedeutet, dass die Tonhöhe oder Wiedergaberate unverändert ist.