UNPKG

react-audio-visualizers

Version:

<h1 align="center">React Audio Visualizers</h1>

50 lines (49 loc) 3.1 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WaveformVisualizer = exports.WaveformVisualizerTheme = exports.DEFAULT_REFRESH_RATE = exports.MIN_BAR_HEIGHT = exports.REFERENCE_SPECTRUM_WIDTH = exports.MAX_DECIBEL = exports.MIN_DECIBEL = exports.OFF_SCREEN_OFFSET = exports.DEFAULT_BAR_MARGIN = exports.DEFAULT_BAR_WIDTH = exports.DEFAULT_MARGIN_HEIGHT_TOP = exports.DEFAULT_MARGIN_HEIGHT_BOTTOM = exports.DEFAULT_COLOR = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); var react_audio_visualizers_core_1 = require("react-audio-visualizers-core"); var LineWaveformVisualizer_1 = require("./LineWaveformVisualizer"); var SquareBarsWaveformVisualizer_1 = require("./SquareBarsWaveformVisualizer"); exports.DEFAULT_COLOR = 'white'; exports.DEFAULT_MARGIN_HEIGHT_BOTTOM = 2; exports.DEFAULT_MARGIN_HEIGHT_TOP = 10; exports.DEFAULT_BAR_WIDTH = 10; exports.DEFAULT_BAR_MARGIN = 2.5; exports.OFF_SCREEN_OFFSET = 20; exports.MIN_DECIBEL = 128; exports.MAX_DECIBEL = 255; // in world units exports.REFERENCE_SPECTRUM_WIDTH = 1280; exports.MIN_BAR_HEIGHT = 10; // time in seconds to draw exports.DEFAULT_REFRESH_RATE = 0.025; var WaveformVisualizerTheme; (function (WaveformVisualizerTheme) { WaveformVisualizerTheme["squaredBars"] = "SQUARED_BARS"; WaveformVisualizerTheme["line"] = "LINE"; })(WaveformVisualizerTheme = exports.WaveformVisualizerTheme || (exports.WaveformVisualizerTheme = {})); var WaveformVisualizerThemeComponent = function (_a) { var theme = _a.theme, _b = _a.barWidth, barWidth = _b === void 0 ? exports.DEFAULT_BAR_WIDTH : _b, _c = _a.barMargin, barMargin = _c === void 0 ? exports.DEFAULT_BAR_MARGIN : _c, _d = _a.refreshRate, refreshRate = _d === void 0 ? exports.DEFAULT_REFRESH_RATE : _d, _e = _a.colors, colors = _e === void 0 ? [exports.DEFAULT_COLOR] : _e; switch (theme) { case WaveformVisualizerTheme.squaredBars: return (0, jsx_runtime_1.jsx)(SquareBarsWaveformVisualizer_1.SquaredBarsWaveformVisualizer, { colors: colors, barWidth: barWidth, barMargin: barMargin, refreshRate: refreshRate }, void 0); case WaveformVisualizerTheme.line: return (0, jsx_runtime_1.jsx)(LineWaveformVisualizer_1.LineWaveformVisualizer, { color: colors[0], pointSpacing: barWidth, refreshRate: refreshRate }, void 0); default: return null; } }; var WaveformVisualizer = function (props) { return ((0, jsx_runtime_1.jsx)(react_audio_visualizers_core_1.AudioVisualizer, __assign({ canvasProps: { orthographic: true } }, props, { children: (0, jsx_runtime_1.jsx)(WaveformVisualizerThemeComponent, __assign({}, props), void 0) }), void 0)); }; exports.WaveformVisualizer = WaveformVisualizer;