fix(sound): playing a sound that is already playing does nothing

Offen Anfängerfreundlich
#496 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
82/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
typescript
Bereich
audio-video-rtc

Rechercherichtung

Lies modules/sound/src/sound.library.ts in den Zeilen 57–66 und die Zusage zur Überlappung in modules/sound/README.md. Prüfe die bestehenden Tests oder Skripte des Sound-Pakets, um herauszufinden, wie die Wiedergabe ausgelöst wird. Führe zwei schnelle Aufrufe von play("hit") aus und bestätige anschließend, dass wiederholte Aufrufe wie in der README beschrieben die Wiedergabe auslösen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug good first issue modules:sound
Which package is this bug report for?

sound

Issue description

Each key has one HTMLAudioElement. Calling play() on an element that is already playing does not restart it, so two play("hit") calls within the clip length give a single sound. Repeated effects (shots, hits) are dropped, although the README says sounds may overlap.

Where:

Evidence:

const element = this._sounds.get(key);
if (!element) throw new NfNotFound(key);
element.play().catch(...)

Suggested fix: Set element.currentTime = 0 before playing, or play a cloneNode() per call if same-key overlap is intended.

Found during a code audit of main at be72076.

Code sample

No response

Versions
  • Engine main at be72076
  • pnpm 12.0.0, Node.js 26, Bun 1.3.14
Issue priority

Medium (should be fixed soon)

I have tested this issue on a development release

be72076

Vorherrschende Sprache
TypeScript
Sterne
7
Forks
2
Ø Merge
1 T. 17 Std.
Gemergte PRs (30 T.)
17

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NanoForge-dev/Engine

Alle Issues in NanoForge-dev/Engine

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.