@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
86 lines (85 loc) • 3.25 kB
TypeScript
import type { Sound } from "./sound.js";
import type { Analyser } from "./analyser.js";
import type { Nullable } from "../types.js";
import type { Scene } from "../scene.js";
/**
* Options allowed during the creation of a sound track.
*/
export interface ISoundTrackOptions {
/**
* The volume the sound track should take during creation
*/
volume?: number;
/**
* Define if the sound track is the main sound track of the scene
*/
mainTrack?: boolean;
}
/**
* It could be useful to isolate your music & sounds on several tracks to better manage volume on a grouped instance of sounds.
* It will be also used in a future release to apply effects on a specific track.
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-sound-tracks
*/
export declare class SoundTrack {
/**
* The unique identifier of the sound track in the scene.
*/
id: number;
/**
* The list of sounds included in the sound track.
*/
soundCollection: Array<Sound>;
private _outputAudioNode;
private _scene;
private _connectedAnalyser;
private _options;
private _isInitialized;
/**
* Creates a new sound track.
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-sound-tracks
* @param scene Define the scene the sound track belongs to
* @param options
*/
constructor(scene?: Nullable<Scene>, options?: ISoundTrackOptions);
private _initializeSoundTrackAudioGraph;
/**
* Release the sound track and its associated resources
*/
dispose(): void;
/**
* Adds a sound to this sound track
* @param sound define the sound to add
* @ignoreNaming
*/
addSound(sound: Sound): void;
/**
* Removes a sound to this sound track
* @param sound define the sound to remove
* @ignoreNaming
*/
removeSound(sound: Sound): void;
/**
* Set a global volume for the full sound track.
* @param newVolume Define the new volume of the sound track
*/
setVolume(newVolume: number): void;
/**
* Switch the panning model to HRTF:
* Renders a stereo output of higher quality than equalpower — it uses a convolution with measured impulse responses from human subjects.
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound
*/
switchPanningModelToHRTF(): void;
/**
* Switch the panning model to Equal Power:
* Represents the equal-power panning algorithm, generally regarded as simple and efficient. equalpower is the default value.
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#creating-a-spatial-3d-sound
*/
switchPanningModelToEqualPower(): void;
/**
* Connect the sound track to an audio analyser allowing some amazing
* synchronization between the sounds/music and your visualization (VuMeter for instance).
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser
* @param analyser The analyser to connect to the engine
*/
connectToAnalyser(analyser: Analyser): void;
}