UNPKG

@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
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