UNPKG

react-native-audio-api

Version:

react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification

47 lines (39 loc) 1.46 kB
import AudioNode from './AudioNode.web'; import { AnalyserOptions } from '../types'; import BaseAudioContext from './BaseAudioContext.web'; export default class AnalyserNode extends AudioNode { fftSize: number; readonly frequencyBinCount: number; minDecibels: number; maxDecibels: number; smoothingTimeConstant: number; constructor(context: BaseAudioContext, analyserOptions?: AnalyserOptions) { const node = new globalThis.AnalyserNode(context.context, analyserOptions); super(context, node); this.fftSize = node.fftSize; this.frequencyBinCount = node.frequencyBinCount; this.minDecibels = node.minDecibels; this.maxDecibels = node.maxDecibels; this.smoothingTimeConstant = node.smoothingTimeConstant; } public getByteFrequencyData(array: Uint8Array): void { (this.node as globalThis.AnalyserNode).getByteFrequencyData( array as Uint8Array<ArrayBuffer> ); } public getByteTimeDomainData(array: Uint8Array): void { (this.node as globalThis.AnalyserNode).getByteTimeDomainData( array as Uint8Array<ArrayBuffer> ); } public getFloatFrequencyData(array: Float32Array): void { (this.node as globalThis.AnalyserNode).getFloatFrequencyData( array as Float32Array<ArrayBuffer> ); } public getFloatTimeDomainData(array: Float32Array): void { (this.node as globalThis.AnalyserNode).getFloatTimeDomainData( array as Float32Array<ArrayBuffer> ); } }