@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.
96 lines • 3.17 kB
JavaScript
import { Logger } from "../../../Misc/logger.js";
import { AbstractAudioAnalyzer } from "../../abstractAudio/subProperties/abstractAudioAnalyzer.js";
import { _GetAudioAnalyzerProperty, _GetAudioAnalyzerSubNode, _SetAudioAnalyzerProperty } from "../subNodes/audioAnalyzerSubNode.js";
let _emptyByteFrequencyData = null;
let _emptyFloatFrequencyData = null;
/** @internal */
export function _GetEmptyByteFrequencyData() {
if (!_emptyByteFrequencyData) {
_emptyByteFrequencyData = new Uint8Array();
}
return _emptyByteFrequencyData;
}
/** @internal */
export function _GetEmptyFloatFrequencyData() {
if (!_emptyFloatFrequencyData) {
_emptyFloatFrequencyData = new Float32Array();
}
return _emptyFloatFrequencyData;
}
/** @internal */
export class _AudioAnalyzer extends AbstractAudioAnalyzer {
/** @internal */
constructor(subGraph) {
super();
this._subGraph = subGraph;
}
/** @internal */
get fftSize() {
return _GetAudioAnalyzerProperty(this._subGraph, "fftSize");
}
set fftSize(value) {
_SetAudioAnalyzerProperty(this._subGraph, "fftSize", value);
}
/** @internal */
get isEnabled() {
return _GetAudioAnalyzerSubNode(this._subGraph) !== null;
}
/** @internal */
get minDecibels() {
return _GetAudioAnalyzerProperty(this._subGraph, "minDecibels");
}
set minDecibels(value) {
_SetAudioAnalyzerProperty(this._subGraph, "minDecibels", value);
}
/** @internal */
get maxDecibels() {
return _GetAudioAnalyzerProperty(this._subGraph, "maxDecibels");
}
set maxDecibels(value) {
_SetAudioAnalyzerProperty(this._subGraph, "maxDecibels", value);
}
/** @internal */
get smoothing() {
return _GetAudioAnalyzerProperty(this._subGraph, "smoothing");
}
set smoothing(value) {
_SetAudioAnalyzerProperty(this._subGraph, "smoothing", value);
}
/** @internal */
dispose() {
const subNode = _GetAudioAnalyzerSubNode(this._subGraph);
if (subNode) {
this._subGraph.removeSubNode(subNode);
subNode.dispose();
}
}
/** @internal */
async enable() {
const subNode = _GetAudioAnalyzerSubNode(this._subGraph);
if (!subNode) {
await this._subGraph.createAndAddSubNode("Analyzer" /* AudioSubNode.ANALYZER */);
}
return Promise.resolve();
}
/** @internal */
getByteFrequencyData() {
const subNode = _GetAudioAnalyzerSubNode(this._subGraph);
if (!subNode) {
Logger.Warn("AudioAnalyzer not enabled");
this.enable();
return _GetEmptyByteFrequencyData();
}
return subNode.getByteFrequencyData();
}
/** @internal */
getFloatFrequencyData() {
const subNode = _GetAudioAnalyzerSubNode(this._subGraph);
if (!subNode) {
Logger.Warn("AudioAnalyzer not enabled");
this.enable();
return _GetEmptyFloatFrequencyData();
}
return subNode.getFloatFrequencyData();
}
}
//# sourceMappingURL=audioAnalyzer.js.map