diff --git a/src/assets/sfx/pop.wav b/src/assets/sfx/pop.wav new file mode 100755 index 0000000000000000000000000000000000000000..c816106deced3e1ab367bf72d5ef902b81ffd4e2 Binary files /dev/null and b/src/assets/sfx/pop.wav differ diff --git a/src/hub.html b/src/hub.html index 33bada3b71ba3093fe3ba03a6bde7a391e84d50c..a9deed7d5515c157f0f0f1e93e972e9e227599b5 100644 --- a/src/hub.html +++ b/src/hub.html @@ -71,7 +71,8 @@ <a-asset-item id="sound_asset-teleport_start" src="./assets/sfx/D_teleportStart.wav" response-type="arraybuffer" preload="auto"></a-asset-item> <a-asset-item id="sound_asset-teleport_end" src="./assets/sfx/D_teleportEnd.wav" response-type="arraybuffer" preload="auto"></a-asset-item> <a-asset-item id="sound_asset-snap_rotate" src="./assets/sfx/quickTurn.wav" response-type="arraybuffer" preload="auto"></a-asset-item> - <a-asset-item id="sound_asset-media_loaded" src="./assets/sfx/A_bendUp.wav" response-type="arraybuffer" preload="auto"></a-asset-item> + <a-asset-item id="sound_asset-media_loaded" src="./assets/sfx/pop.wav" response-type="arraybuffer" preload="auto"></a-asset-item> + <a-asset-item id="sound_asset-media_loading" src="./assets/sfx/A_bendUp.wav" response-type="arraybuffer" preload="auto"></a-asset-item> <a-asset-item id="sound_asset-hud_hover_start" src="./assets/sfx/tap_mellow.wav" response-type="arraybuffer" preload="auto"></a-asset-item> <a-asset-item id="sound_asset-hover" src="./assets/sfx/tap_mellow.wav" response-type="arraybuffer" preload="auto"></a-asset-item> <a-asset-item id="DISABLED_sound_asset-hover_off" src="./assets/sfx/tap_mellow.wav" response-type="arraybuffer" preload="auto"></a-asset-item> @@ -446,10 +447,10 @@ scene-sound__snap_rotate_left="on: snap_rotate_left;" sound__snap_rotate_right="positional: false; src: #sound_asset-snap_rotate; on: nothing; poolSize: 3;" scene-sound__snap_rotate_right="on: snap_rotate_right;" - sound__model_loaded="positional: false; src: #sound_asset-media_loaded; on: nothing; poolSize: 2;" - scene-sound__model_loaded="on: object_spawned;" - sound__image_loaded="positional: false; src: #sound_asset-media_loaded; on: nothing; poolSize: 2;" - scene-sound__image_loaded="on: image-loaded;" + sound__media_loaded="positional: false; src: #sound_asset-media_loaded; on: nothing; poolSize: 2;" + scene-sound__media_loaded="on: media-loaded;" + sound__media_loading="positional: false; src: #sound_asset-media_loading; on: nothing; poolSize: 2;" + scene-sound__media_loading="on: media-loading;" sound__hud_action_mute="positional: false; src: #sound_asset-toggle_mute; on: nothing; poolSize: 2;" scene-sound__hud_action_mute="on: action_mute;" sound__hud_action_freeze="positional: false; src: #sound_asset-toggle_freeze; on: nothing; poolSize: 2;" diff --git a/src/utils/media-utils.js b/src/utils/media-utils.js index 7a05a2c725b9ade88eb21bdd0df6e075459f8920..74dfd96eb7bcf6b2483ddea4d81b93acf39cd9c1 100644 --- a/src/utils/media-utils.js +++ b/src/utils/media-utils.js @@ -108,6 +108,17 @@ export const addMedia = (src, template, contentOrigin, resolve = false, resize = entity.setAttribute("media-loader", { resize, resolve, src: typeof src === "string" ? src : "" }); scene.appendChild(entity); + const fireLoadingTimeout = setTimeout(() => { + scene.emit("media-loading", { src: src }); + }, 100); + + ["model-loaded", "video-loaded", "image-loaded"].forEach(eventName => { + entity.addEventListener(eventName, () => { + clearTimeout(fireLoadingTimeout); + scene.emit("media-loaded", { src: src }); + }); + }); + const orientation = new Promise(function(resolve) { if (src instanceof File) { getOrientation(src, x => {