Kann ich in HTML5 denselben Sound mehrmals gleichzeitig wiedergeben?

8

Ich mache ein Spiel, in dem oft Töne gespielt werden. Ich habe bemerkt, dass ein Sound beim Abspielen nicht wieder abgespielt wird. Wenn der Spieler beispielsweise mit einer Wand kollidiert, wird ein "Klopf" -Sound abgespielt. Aber wenn der Spieler mit einer Wand kollidiert und dann schnell mit einer anderen Wand kollidiert, wird nur ein "dumpfes" Geräusch gespielt, und ich glaube, dass dies passiert, weil der erste Ton nicht beendet wurde. Ist das wahr? Wie soll ich das vermeiden? Ich dachte daran, den Sound dreimal vorzuspannen und immer eine andere Kopie dieses Sounds zu spielen, aber das klingt ziemlich dumm ...

Gelöst:

Es stellte sich heraus, dass ich recht hatte ... Sie müssen mehrere Versionen des Sounds vorab laden und sie dann zirkulär abspielen.

DER CODE:

%Vor%     
corazza 30.04.2012, 14:56
quelle

4 Antworten

2

Laden Sie den Sound mehrmals, um die Polyphonie zu simulieren. Spiele sie in Round-Robin-Manier. Schau dir meine Demo auf mattheftoledo.com an. Insbesondere die Funktion _initSoundBank ()

    
mrbinky3000 30.04.2012, 14:58
quelle
4

Sie können das Audioelement klonen. Ich weiß nicht, ob du sie mehr als einmal gleichzeitig spielen kannst, aber hier kannst du einen Sound mehr als einmal abspielen, ohne ihn mehr als einmal herunterzuladen.

%Vor%

Ich weiß, dass dies für Chrome funktioniert, wo ich es nur gebraucht habe. Viel Glück!

    
Rex 16.07.2014 01:02
quelle
1

Ja, ein einzelnes <audio> -Objekt kann immer nur einen Titel abspielen. Beachten Sie, dass das <audio> -Objekt über ein currentTime -Attribut verfügt, das die aktuelle Position der Audiospur angibt: Wenn ein <audio> -Objekt mehrere Spuren gleichzeitig wiedergeben kann, welchen Wert würde currentTime wiedergeben?

Siehe meine Lösung für eine Obermenge dieses Problems auf Is Sound in Javascript Leistung schwer spielen? . (Fügen Sie im Prinzip doppelte <audio> -Tags mit demselben Sound hinzu.)

    
apsillers 30.04.2012 15:12
quelle
0

Obwohl es momentan nur in FireFox und Chrome implementiert ist, sollten Sie in Zukunft die WebAudio API verwenden, die speziell für Spiele und Audioanwendungen im Browser entwickelt wurde.

Dort können Sie jeden Ton mehrere Male abspielen und mehrere andere lustige Sachen damit machen.

Ein gutes Tutorial dafür ist hier: Ссылка

    
JustGoscha 17.10.2013 10:46
quelle