@needle-tools/engine 5.0.4 → 5.0.6-next.56fe65a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{needle-engine.bundle-CYrPktak.umd.cjs → needle-engine.bundle-BakND7HQ.umd.cjs} +140 -139
  4. package/dist/{needle-engine.bundle-B3Km2VZ4.js → needle-engine.bundle-CsY10n4y.js} +8183 -7957
  5. package/dist/{needle-engine.bundle-CX-SJZzp.min.js → needle-engine.bundle-Drz4zRYf.min.js} +142 -141
  6. package/dist/needle-engine.d.ts +139 -14
  7. package/dist/needle-engine.js +560 -557
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/dist/{vendor-vHLk8sXu.js → vendor-CAcsI0eU.js} +116 -115
  11. package/dist/{vendor-CntUvmJu.umd.cjs → vendor-CEM38hLE.umd.cjs} +2 -2
  12. package/dist/{vendor-DPbfJJ4d.min.js → vendor-HRlxIBga.min.js} +2 -2
  13. package/lib/engine/api.d.ts +2 -0
  14. package/lib/engine/api.js +2 -0
  15. package/lib/engine/api.js.map +1 -1
  16. package/lib/engine/debug/debug_spatial_console.d.ts +2 -0
  17. package/lib/engine/debug/debug_spatial_console.js +10 -7
  18. package/lib/engine/debug/debug_spatial_console.js.map +1 -1
  19. package/lib/engine/engine_addressables.d.ts +2 -0
  20. package/lib/engine/engine_addressables.js +6 -3
  21. package/lib/engine/engine_addressables.js.map +1 -1
  22. package/lib/engine/engine_audio.d.ts +68 -0
  23. package/lib/engine/engine_audio.js +172 -0
  24. package/lib/engine/engine_audio.js.map +1 -1
  25. package/lib/engine/engine_gameobject.js +2 -2
  26. package/lib/engine/engine_gameobject.js.map +1 -1
  27. package/lib/engine/engine_init.js +8 -0
  28. package/lib/engine/engine_init.js.map +1 -1
  29. package/lib/engine/engine_mainloop_utils.js +5 -2
  30. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  31. package/lib/engine/engine_serialization_builtin_serializer.js +27 -0
  32. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  33. package/lib/engine/webcomponents/needle-engine.d.ts +9 -3
  34. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  35. package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
  36. package/lib/engine/xr/NeedleXRSession.js +50 -14
  37. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  38. package/lib/engine-components/Animation.js +17 -16
  39. package/lib/engine-components/Animation.js.map +1 -1
  40. package/lib/engine-components/AnimatorController.d.ts +2 -0
  41. package/lib/engine-components/AnimatorController.js +4 -1
  42. package/lib/engine-components/AnimatorController.js.map +1 -1
  43. package/lib/engine-components/AudioSource.d.ts +19 -3
  44. package/lib/engine-components/AudioSource.js +121 -68
  45. package/lib/engine-components/AudioSource.js.map +1 -1
  46. package/lib/engine-components/DragControls.d.ts +7 -0
  47. package/lib/engine-components/DragControls.js +19 -0
  48. package/lib/engine-components/DragControls.js.map +1 -1
  49. package/lib/engine-components/NestedGltf.d.ts +19 -3
  50. package/lib/engine-components/NestedGltf.js +19 -3
  51. package/lib/engine-components/NestedGltf.js.map +1 -1
  52. package/lib/engine-components/Networking.d.ts +1 -1
  53. package/lib/engine-components/Networking.js +1 -1
  54. package/lib/engine-components/OrbitControls.js +16 -11
  55. package/lib/engine-components/OrbitControls.js.map +1 -1
  56. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +2 -0
  57. package/lib/engine-components/postprocessing/VolumeParameter.js +4 -1
  58. package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
  59. package/lib/engine-components/ui/Canvas.d.ts +1 -1
  60. package/lib/engine-components/ui/Canvas.js +2 -8
  61. package/lib/engine-components/ui/Canvas.js.map +1 -1
  62. package/lib/engine-components/ui/Text.d.ts +8 -1
  63. package/lib/engine-components/ui/Text.js +29 -14
  64. package/lib/engine-components/ui/Text.js.map +1 -1
  65. package/lib/engine-components/web/CursorFollow.js +21 -12
  66. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  67. package/lib/engine-components/webxr/WebXRImageTracking.js +4 -0
  68. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  69. package/package.json +2 -2
  70. package/plugins/vite/asap.js +17 -8
  71. package/plugins/vite/local-files-core.js +3 -3
  72. package/plugins/vite/local-files-utils.d.ts +3 -1
  73. package/plugins/vite/local-files-utils.js +29 -5
  74. package/src/engine/api.ts +3 -0
  75. package/src/engine/debug/debug_spatial_console.ts +10 -7
  76. package/src/engine/engine_addressables.ts +6 -3
  77. package/src/engine/engine_audio.ts +184 -0
  78. package/src/engine/engine_gameobject.ts +2 -2
  79. package/src/engine/engine_init.ts +8 -0
  80. package/src/engine/engine_mainloop_utils.ts +5 -2
  81. package/src/engine/engine_serialization_builtin_serializer.ts +31 -3
  82. package/src/engine/webcomponents/needle-engine.ts +9 -3
  83. package/src/engine/xr/NeedleXRSession.ts +48 -13
  84. package/src/engine-components/Animation.ts +19 -16
  85. package/src/engine-components/AnimatorController.ts +4 -1
  86. package/src/engine-components/AudioSource.ts +130 -79
  87. package/src/engine-components/DragControls.ts +18 -2
  88. package/src/engine-components/NestedGltf.ts +20 -4
  89. package/src/engine-components/Networking.ts +1 -1
  90. package/src/engine-components/OrbitControls.ts +18 -9
  91. package/src/engine-components/postprocessing/VolumeParameter.ts +4 -1
  92. package/src/engine-components/ui/Canvas.ts +2 -8
  93. package/src/engine-components/ui/Text.ts +43 -18
  94. package/src/engine-components/web/CursorFollow.ts +21 -13
  95. package/src/engine-components/webxr/WebXRImageTracking.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatorController.js","sourceRoot":"","sources":["../../src/engine-components/AnimatorController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimatorController.js","sourceRoot":"","sources":["../../src/engine-components/AnimatorController.ts"],"names":[],"mappings":"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"}
@@ -107,9 +107,10 @@ export declare class AudioSource extends Behaviour {
107
107
  */
108
108
  get isPlaying(): boolean;
109
109
  /**
110
- * The total duration of the current audio clip in seconds.
110
+ * The total duration of the currently loaded audio clip in seconds.
111
111
  *
112
112
  * @returns Duration in seconds or undefined if no clip is loaded
113
+ * @remarks For MediaStream clips, duration is not directly available and will return undefined. If the audio clip has not started loading or is still loading, duration may also be undefined until the audio buffer is ready.
113
114
  */
114
115
  get duration(): number | undefined;
115
116
  /**
@@ -134,7 +135,8 @@ export declare class AudioSource extends Behaviour {
134
135
  /**
135
136
  * Controls how the audio is positioned in space.
136
137
  * Values range from 0 (2D, non-positional) to 1 (fully 3D positioned).
137
- * Note: 2D playback is not fully supported in the current implementation.
138
+ * Internally uses a dual-path audio graph to crossfade between a spatialized (PannerNode)
139
+ * and a non-spatialized (direct) signal path.
138
140
  */
139
141
  get spatialBlend(): number;
140
142
  set spatialBlend(val: number);
@@ -182,7 +184,11 @@ export declare class AudioSource extends Behaviour {
182
184
  private audioLoader;
183
185
  private shouldPlay;
184
186
  private _lastClipStartedLoading;
187
+ private _loadedClip;
185
188
  private _audioElement;
189
+ private _entryNode;
190
+ private _spatialGain;
191
+ private _bypassGain;
186
192
  /**
187
193
  * Returns the underlying {@link PositionalAudio} object, creating it if necessary.
188
194
  * The audio source needs a user interaction to be initialized due to browser autoplay policies.
@@ -213,6 +219,15 @@ export declare class AudioSource extends Behaviour {
213
219
  private onApplicationMuteChanged;
214
220
  private createAudio;
215
221
  private __onAllowAudioCallback;
222
+ /**
223
+ * Sets up the dual-path audio graph for spatial blend crossfading.
224
+ * Creates two parallel signal paths from source to output:
225
+ * - 3D path: entry → panner → spatialGain → gain (spatialized)
226
+ * - 2D path: entry → bypassGain → gain (non-spatialized)
227
+ */
228
+ private setupSpatialBlendNodes;
229
+ /** Updates the spatial/bypass gain values based on the current spatialBlend. */
230
+ private updateSpatialBlendGains;
216
231
  private applySpatialDistanceSettings;
217
232
  private onNewClip;
218
233
  /**
@@ -220,8 +235,9 @@ export declare class AudioSource extends Behaviour {
220
235
  * If no argument is provided, plays the currently assigned clip.
221
236
  *
222
237
  * @param clip - Optional audio clip or {@link MediaStream} to play
238
+ * @returns A promise that resolves when playback starts successfully, or rejects on error
223
239
  */
224
- play(clip?: string | MediaStream | undefined): void;
240
+ play(clip?: string | MediaStream | undefined): Promise<boolean>;
225
241
  /**
226
242
  * Pauses audio playback while maintaining the current position.
227
243
  * Use play() to resume from the paused position.
@@ -9,7 +9,6 @@ import { PositionalAudioHelper } from 'three/examples/jsm/helpers/PositionalAudi
9
9
  import { isDevEnvironment } from "../engine/debug/index.js";
10
10
  import { Application, ApplicationEvents } from "../engine/engine_application.js";
11
11
  import { findObjectOfType } from "../engine/engine_components.js";
12
- import { Mathf } from "../engine/engine_math.js";
13
12
  import { serializable } from "../engine/engine_serialization_decorator.js";
14
13
  import { DeviceUtilities, getParam } from "../engine/engine_utils.js";
15
14
  import { AudioListener } from "./AudioListener.js";
@@ -127,12 +126,23 @@ export class AudioSource extends Behaviour {
127
126
  */
128
127
  get isPlaying() { return this.sound?.isPlaying ?? false; }
129
128
  /**
130
- * The total duration of the current audio clip in seconds.
129
+ * The total duration of the currently loaded audio clip in seconds.
131
130
  *
132
131
  * @returns Duration in seconds or undefined if no clip is loaded
132
+ * @remarks For MediaStream clips, duration is not directly available and will return undefined. If the audio clip has not started loading or is still loading, duration may also be undefined until the audio buffer is ready.
133
133
  */
134
134
  get duration() {
135
- return this.sound?.buffer?.duration;
135
+ if (this.sound?.buffer?.duration) {
136
+ return this.sound.buffer.duration;
137
+ }
138
+ else if (this._audioElement?.duration) {
139
+ return this._audioElement.duration;
140
+ }
141
+ else if (this._loadedClip instanceof MediaStream) {
142
+ // MediaStream duration is not directly available; return undefined or estimate if possible
143
+ return undefined;
144
+ }
145
+ return undefined;
136
146
  }
137
147
  /**
138
148
  * The current playback position as a normalized value between 0 and 1.
@@ -185,7 +195,8 @@ export class AudioSource extends Behaviour {
185
195
  /**
186
196
  * Controls how the audio is positioned in space.
187
197
  * Values range from 0 (2D, non-positional) to 1 (fully 3D positioned).
188
- * Note: 2D playback is not fully supported in the current implementation.
198
+ * Internally uses a dual-path audio graph to crossfade between a spatialized (PannerNode)
199
+ * and a non-spatialized (direct) signal path.
189
200
  */
190
201
  get spatialBlend() {
191
202
  return this._spatialBlend;
@@ -268,7 +279,12 @@ export class AudioSource extends Behaviour {
268
279
  // set this from audio context time, used to set clip offset when setting "time" property
269
280
  // there is maybe a better way to set a audio clip current time?!
270
281
  _lastClipStartedLoading = null;
282
+ _loadedClip = null;
271
283
  _audioElement = null;
284
+ // Spatial blend dual-path audio nodes
285
+ _entryNode = null;
286
+ _spatialGain = null;
287
+ _bypassGain = null;
272
288
  /**
273
289
  * Returns the underlying {@link PositionalAudio} object, creating it if necessary.
274
290
  * The audio source needs a user interaction to be initialized due to browser autoplay policies.
@@ -286,43 +302,12 @@ export class AudioSource extends Behaviour {
286
302
  if (listener?.listener) {
287
303
  this.sound = new PositionalAudio(listener.listener);
288
304
  this.gameObject?.add(this.sound);
289
- // this._listener = listener;
290
- // this._originalSoundMatrixWorldFunction = this.sound.updateMatrixWorld;
291
- // this.sound.updateMatrixWorld = this._onSoundMatrixWorld;
292
305
  }
293
306
  else if (debug)
294
307
  console.warn("No audio listener found in scene - can not play audio");
295
308
  }
296
309
  return this.sound;
297
310
  }
298
- // This is a hacky workaround to get the PositionalAudio behave like a 2D audio source
299
- // private _listener: AudioListener | null = null;
300
- // private _originalSoundMatrixWorldFunction: Function | null = null;
301
- // private _onSoundMatrixWorld = (force: boolean) => {
302
- // if (this._spatialBlend > .05) {
303
- // if (this._originalSoundMatrixWorldFunction) {
304
- // this._originalSoundMatrixWorldFunction.call(this.sound, force);
305
- // }
306
- // }
307
- // else {
308
- // // we use another object's matrix world function (but bound to the positional audio)
309
- // // this is just a little trick to prevent calling the PositionalAudio's updateMatrixWorld function
310
- // this.gameObject.updateMatrixWorld?.call(this.sound, force);
311
- // if (this.sound && this._listener) {
312
- // this.sound.gain.connect(this._listener.listener.getInput());
313
- // // const pos = getTempVector().setFromMatrixPosition(this._listener.gameObject.matrixWorld);
314
- // // const ctx = this.sound.context;
315
- // // const delay = this._listener.listener.timeDelta;
316
- // // const time = ctx.currentTime ;
317
- // // this.sound.panner.positionX.setValueAtTime(pos.x, time);
318
- // // this.sound.panner.positionY.setValueAtTime(pos.y, time);
319
- // // this.sound.panner.positionZ.setValueAtTime(pos.z, time);
320
- // // this.sound.panner.orientationX.setValueAtTime(0, time);
321
- // // this.sound.panner.orientationY.setValueAtTime(0, time);
322
- // // this.sound.panner.orientationZ.setValueAtTime(-1, time);
323
- // }
324
- // }
325
- // }
326
311
  /**
327
312
  * Indicates whether the audio source is queued to play when possible.
328
313
  * This may be true before user interaction has been registered.
@@ -346,8 +331,10 @@ export class AudioSource extends Behaviour {
346
331
  if (this.playOnAwake)
347
332
  this.shouldPlay = true;
348
333
  if (this.preload) {
349
- if (typeof this.clip === "string") {
350
- this.audioLoader.load(this.clip, this.createAudio, () => { }, console.error);
334
+ if (typeof this.clip === "string" && this.clip.length > 0) {
335
+ this.audioLoader.load(this.clip, this.createAudio, () => { }, e => {
336
+ console.error(`[AudioSource] Error preloading audio clip "${this.clip}":`, e);
337
+ });
351
338
  }
352
339
  }
353
340
  }
@@ -416,25 +403,17 @@ export class AudioSource extends Behaviour {
416
403
  sound.stop();
417
404
  if (buffer)
418
405
  sound.setBuffer(buffer);
406
+ this._loadedClip = this.clip;
419
407
  sound.loop = this._loop;
420
408
  if (this.context.application.muted)
421
409
  sound.setVolume(0);
422
410
  else
423
411
  sound.setVolume(this.volume);
424
412
  sound.autoplay = this.shouldPlay && AudioSource.userInteractionRegistered;
413
+ this.setupSpatialBlendNodes();
425
414
  this.applySpatialDistanceSettings();
426
415
  if (sound.isPlaying)
427
416
  sound.stop();
428
- // const panner = sound.panner;
429
- // panner.coneOuterGain = 1;
430
- // sound.setDirectionalCone(360, 360, 1);
431
- // const src = sound.context.createBufferSource();
432
- // src.buffer = sound.buffer;
433
- // src.connect(sound.panner);
434
- // src.start(this.audioContext?.currentTime);
435
- // const gain = sound.context.createGain();
436
- // gain.gain.value = 1 - this.spatialBlend;
437
- // src.connect(gain);
438
417
  // make sure we only play the sound if the user has interacted with the page
439
418
  AudioSource.registerWaitForAllowAudio(this.__onAllowAudioCallback);
440
419
  };
@@ -442,30 +421,96 @@ export class AudioSource extends Behaviour {
442
421
  if (this.shouldPlay)
443
422
  this.play();
444
423
  };
424
+ /**
425
+ * Sets up the dual-path audio graph for spatial blend crossfading.
426
+ * Creates two parallel signal paths from source to output:
427
+ * - 3D path: entry → panner → spatialGain → gain (spatialized)
428
+ * - 2D path: entry → bypassGain → gain (non-spatialized)
429
+ */
430
+ setupSpatialBlendNodes() {
431
+ const sound = this.sound;
432
+ if (!sound || this._entryNode)
433
+ return;
434
+ const ctx = sound.context;
435
+ this._entryNode = ctx.createGain();
436
+ this._spatialGain = ctx.createGain();
437
+ this._bypassGain = ctx.createGain();
438
+ // Disconnect the default panner → gain connection set up by three.js
439
+ try {
440
+ sound.panner.disconnect(sound.gain);
441
+ }
442
+ catch { /* not connected */ }
443
+ // 3D path: entry → panner → spatialGain → gain
444
+ this._entryNode.connect(sound.panner);
445
+ sound.panner.connect(this._spatialGain);
446
+ this._spatialGain.connect(sound.gain);
447
+ // 2D path: entry → bypassGain → gain
448
+ this._entryNode.connect(this._bypassGain);
449
+ this._bypassGain.connect(sound.gain);
450
+ // Override getOutput so three.js connects source → entryNode instead of panner
451
+ sound.getOutput = () => this._entryNode;
452
+ // Wrap connect() to undo PositionalAudio's redundant panner → gain reconnection
453
+ const origConnect = sound.connect;
454
+ sound.connect = function () {
455
+ origConnect.call(sound);
456
+ try {
457
+ sound.panner.disconnect(sound.gain);
458
+ }
459
+ catch { /* expected */ }
460
+ return sound;
461
+ };
462
+ // Wrap disconnect() to prevent error when panner → gain doesn't exist
463
+ const origDisconnect = sound.disconnect;
464
+ sound.disconnect = function () {
465
+ try {
466
+ origDisconnect.call(sound);
467
+ }
468
+ catch { /* panner → gain already removed */ }
469
+ return sound;
470
+ };
471
+ this.updateSpatialBlendGains();
472
+ }
473
+ /** Updates the spatial/bypass gain values based on the current spatialBlend. */
474
+ updateSpatialBlendGains() {
475
+ if (!this._spatialGain || !this._bypassGain || !this.sound)
476
+ return;
477
+ const t = this.sound.context.currentTime;
478
+ // Use setTargetAtTime for smooth transitions (avoids clicks/pops)
479
+ this._spatialGain.gain.setTargetAtTime(this._spatialBlend, t, 0.01);
480
+ this._bypassGain.gain.setTargetAtTime(1 - this._spatialBlend, t, 0.01);
481
+ }
445
482
  applySpatialDistanceSettings() {
446
483
  const sound = this.sound;
447
484
  if (!sound)
448
485
  return;
449
486
  this._needUpdateSpatialDistanceSettings = false;
450
- const dist = Mathf.lerp(10 * this._maxDistance / Math.max(0.0001, this.spatialBlend), this._minDistance, this.spatialBlend);
487
+ const ref = Math.max(0.0001, this._minDistance);
488
+ const max = Math.max(0.01, this._maxDistance);
451
489
  if (debug)
452
- console.log(this.name, this._minDistance, this._maxDistance, this.spatialBlend, "Ref distance=" + dist);
453
- sound.setRefDistance(dist);
454
- sound.setMaxDistance(Math.max(0.01, this._maxDistance));
455
- // sound.setRolloffFactor(this.spatialBlend);
456
- // sound.panner.positionZ.automationRate
490
+ console.log(this.name, ref, max, this.spatialBlend);
491
+ sound.setRefDistance(ref);
492
+ sound.setMaxDistance(max);
457
493
  // https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel
458
494
  switch (this.rollOffMode) {
459
495
  case AudioRolloffMode.Logarithmic:
460
- sound.setDistanceModel('exponential');
496
+ // Unity's logarithmic rolloff matches Web Audio's 'inverse' model:
497
+ // gain = refDistance / (refDistance + rolloffFactor * (distance - refDistance))
498
+ // We compute rolloffFactor so gain reaches ~0.01 (-40dB) at maxDistance,
499
+ // matching Unity's behavior of effective silence at maxDistance.
500
+ sound.setDistanceModel('inverse');
501
+ sound.setRolloffFactor(99 * ref / Math.max(0.001, max - ref));
461
502
  break;
462
503
  case AudioRolloffMode.Linear:
504
+ // gain = 1 - rolloffFactor * (distance - refDistance) / (maxDistance - refDistance)
505
+ // With rolloffFactor=1 this reaches exactly 0 at maxDistance.
463
506
  sound.setDistanceModel('linear');
507
+ sound.setRolloffFactor(1);
464
508
  break;
465
509
  case AudioRolloffMode.Custom:
466
510
  console.warn("Custom rolloff for AudioSource is not supported: " + this.name);
467
511
  break;
468
512
  }
513
+ this.updateSpatialBlendGains();
469
514
  if (this.spatialBlend > 0) {
470
515
  if (debug && !this.helper) {
471
516
  this.helper = new PositionalAudioHelper(sound, sound.getRefDistance());
@@ -482,7 +527,7 @@ export class AudioSource extends Behaviour {
482
527
  if (typeof clip === "string") {
483
528
  if (debug)
484
529
  console.log(clip);
485
- if (clip.endsWith(".mp3") || clip.endsWith(".wav")) {
530
+ if (clip.endsWith(".mp3") || clip.endsWith(".wav") || clip.endsWith(".ogg") || clip.endsWith(".flac") || clip.endsWith(".aac") || clip.endsWith(".webm")) {
486
531
  if (!this.audioLoader)
487
532
  this.audioLoader = new AudioLoader();
488
533
  this.shouldPlay = true;
@@ -494,7 +539,10 @@ export class AudioSource extends Behaviour {
494
539
  this._lastClipStartedLoading = clip;
495
540
  if (debug)
496
541
  console.log("load audio", clip);
497
- const buffer = await this.audioLoader.loadAsync(clip).catch(console.error);
542
+ const buffer = await this.audioLoader.loadAsync(clip).catch(e => {
543
+ console.error(`[AudioSource] Error loading audio clip "${clip}":`, e);
544
+ return null;
545
+ });
498
546
  if (this.destroyed)
499
547
  return;
500
548
  if (this._lastClipStartedLoading === clip)
@@ -515,34 +563,36 @@ export class AudioSource extends Behaviour {
515
563
  * If no argument is provided, plays the currently assigned clip.
516
564
  *
517
565
  * @param clip - Optional audio clip or {@link MediaStream} to play
566
+ * @returns A promise that resolves when playback starts successfully, or rejects on error
518
567
  */
519
- play(clip = undefined) {
568
+ async play(clip = undefined) {
520
569
  // use audio source's clip when no clip is passed in
521
570
  if (!clip && this.clip)
522
571
  clip = this.clip;
523
572
  // We only support strings and media stream
524
573
  // TODO: maybe we should return here if an invalid value is passed in
525
574
  if (clip !== undefined && typeof clip !== "string" && !(clip instanceof MediaStream)) {
526
- if (isDevEnvironment())
527
- console.warn("Called play on AudioSource with unknown argument type:", clip + "\nUsing the assigned clip instead:", this.clip);
528
575
  // e.g. when a AudioSource.Play is called from SpatialTrigger onEnter this event is called with the TriggerReceiver... to still make this work we *re-use* our already assigned clip. Because otherwise calling `play` would not play the clip...
529
576
  clip = this.clip;
577
+ if (isDevEnvironment())
578
+ console.warn("[AudioSource] Called play on AudioSource with unknown argument type:", clip + "\nUsing the assigned clip instead:", this.clip);
530
579
  }
531
- // Check if we need to call load first
532
- let needsLoading = !this.sound || (clip && clip !== this.clip);
580
+ // Load if the sound hasn't been created yet or if the clip changed since last load
581
+ let needsLoading = !this.sound || (clip && clip !== this._loadedClip);
533
582
  if (typeof clip === "string" && !this.audioLoader)
534
583
  needsLoading = true;
535
584
  if (clip instanceof MediaStream || typeof clip === "string")
536
585
  this.clip = clip;
537
586
  if (needsLoading) {
538
587
  this.shouldPlay = true;
539
- this.onNewClip(clip);
540
- return;
588
+ return this.onNewClip(clip).then(() => true).catch(() => false);
541
589
  }
542
590
  this.shouldPlay = true;
543
591
  this._hasEnded = false;
544
592
  if (debug)
545
- console.log("play", this.sound?.getVolume(), this.sound);
593
+ console.log("[AudioSource] play", this.sound?.getVolume(), this.sound);
594
+ // If a different clip was passed in, needsLoading above would be true and onNewClip handles it.
595
+ // This guard prevents double-playing the same already-playing sound (which would throw in three.js).
546
596
  if (this.sound && !this.sound.isPlaying) {
547
597
  const muted = this.context.application.muted;
548
598
  if (muted)
@@ -560,13 +610,16 @@ export class AudioSource extends Behaviour {
560
610
  this.context.domElement.shadowRoot?.append(this._audioElement);
561
611
  this._audioElement.srcObject = this.clip;
562
612
  this._audioElement.autoplay = false;
613
+ return true;
563
614
  }
564
615
  else {
565
616
  if (this._audioElement)
566
617
  this._audioElement.remove();
567
618
  this.sound.play(muted ? .1 : 0);
619
+ return true;
568
620
  }
569
621
  }
622
+ return false;
570
623
  }
571
624
  /**
572
625
  * Pauses audio playback while maintaining the current position.
@@ -574,7 +627,7 @@ export class AudioSource extends Behaviour {
574
627
  */
575
628
  pause() {
576
629
  if (debug)
577
- console.log("Pause", this);
630
+ console.log("[AudioSource] pause", this);
578
631
  this._hasEnded = true;
579
632
  this.shouldPlay = false;
580
633
  if (this.sound && this.sound.isPlaying && this.sound.source) {
@@ -589,13 +642,13 @@ export class AudioSource extends Behaviour {
589
642
  */
590
643
  stop() {
591
644
  if (debug)
592
- console.log("Pause", this);
645
+ console.log("[AudioSource] stop", this);
593
646
  this._hasEnded = true;
594
647
  this.shouldPlay = false;
595
648
  if (this.sound && this.sound.source) {
596
649
  this._lastContextTime = this.sound?.context.currentTime;
597
650
  if (debug)
598
- console.log(this._lastContextTime);
651
+ console.log("[AudioSource] lastContextTime", this._lastContextTime);
599
652
  this.sound.stop();
600
653
  }
601
654
  this._audioElement?.remove();
@@ -616,7 +669,7 @@ export class AudioSource extends Behaviour {
616
669
  if (this.sound && !this.sound.isPlaying && this.shouldPlay && !this._hasEnded) {
617
670
  this._hasEnded = true;
618
671
  if (debug)
619
- console.log("Audio clip ended", this.clip);
672
+ console.log("[AudioSource] Audio clip ended", this.clip);
620
673
  this.dispatchEvent(new CustomEvent("ended", { detail: this }));
621
674
  }
622
675
  // this.gameObject.position.x = Math.sin(time.time) * 2;