2016-06-02 9 views
1

Ich benutze wavesurfer.js, um eine Visualisierung einer Audioquelle (Player) zu erzeugen. Ich möchte eine kurze Überblendung hinzufügen, wenn der Benutzer auf den Player klickt, um den Ton zu überfliegen.Verwenden von WebAudio API, wie kurze Überblendung beim Überfliegen hinzufügen, um Audio "popping" zu vermeiden

Ich sah http://www.html5rocks.com/en/tutorials/webaudio/intro/ Suche nach Web Audio Crossfade scheinen nur Ergebnisse zu produzieren, die über Crossfading zwischen 2 verschiedenen Audioquellen diskutieren, aber ich möchte eine Überblendung an einer einzigen Quelle.

Gibt es einen bevorzugten Weg, dies zu tun? Eine Möglichkeit wäre, dass ein On-Click-Event auf dem Player-Element vorhanden ist und dann ausgeblendet und eingeblendet wird. Oder haben Sie vielleicht 2 Audioquellen, von denen 1 kein Ton ist?

+0

Ich denke, per Definition, Überblenden ist der Prozess ein Geräusch von Fading/verfolgen und ein anderes in, also bin ich nicht sicher, was Sie meinen, indem Sie einen einzelnen Ton/eine Quelle überblenden? Wenn es sich tatsächlich um das Ausblenden handelt, gefolgt von einem Einblenden, das Sie erreichen möchten, dann tun Sie dies mit einem Klickereignis und verwenden Sie die Automatisierungsmethoden eines Verstärkungsknotens, mit dem Sie Ihren Quellknoten verbinden. –

Antwort

1

Sie könnten einen Verstärkungsknoten verwenden, der auf 0 und zurück auf 1 rampen würde, was die Überblendung glätten würde. Dies würde jedoch eine kleine Menge an Latenz hinzufügen.

so dass, wenn der Benutzer klickt auf den Spieler überspringen:

-ramp der Verstärkungsknoten auf null AudioParam.linearRampToValueAtTime()

-skip zu dem Teil des

-ramp den Verstärkungsknoten Spur mit bis zu 1, auch mit linearer Rampe.

die verblassen würde nur wenige ms sein müssen, um die Pops zu entfernen/klickt

Link zu Web-Audio-AudioParam.linearRampToValueAtTime()