1+ /// <reference types="webaudioapi" />
2+ export interface IWaveTable {
3+ }
4+ export interface IAudioContext {
5+ destination : AudioDestinationNode ;
6+ sampleRate : number ;
7+ currentTime : number ;
8+ listener : AudioListener ;
9+ activeSourceCount : number ;
10+ state : string ;
11+ createBuffer ( numberOfChannels : number , length : number , sampleRate : number ) : AudioBuffer ;
12+ createBuffer ( buffer : ArrayBuffer , mixToMono : boolean ) : AudioBuffer ;
13+ decodeAudioData ( audioData : ArrayBuffer , decodeSuccessCallback ?: Function , decodeErrorCallback ?: Function ) : void ;
14+ createBufferSource ( ) : AudioBufferSourceNode ;
15+ createMediaElementSource ( mediaElement : HTMLMediaElement ) : MediaElementAudioSourceNode ;
16+ createMediaStreamSource ( mediaStreamMediaStream : MediaStream ) : MediaStreamAudioSourceNode ;
17+ createMediaStreamDestination ( ) : MediaStreamAudioDestinationNode ;
18+ createScriptProcessor ( bufferSize : number , numberOfInputChannels ?: number , numberOfOutputChannels ?: number ) : ScriptProcessorNode ;
19+ createAnalyser ( ) : AnalyserNode ;
20+ createGain ( ) : GainNode ;
21+ createDelay ( maxDelayTime ?: number ) : DelayNode ;
22+ createBiquadFilter ( ) : BiquadFilterNode ;
23+ createWaveShaper ( ) : WaveShaperNode ;
24+ createPanner ( ) : PannerNode ;
25+ createConvolver ( ) : ConvolverNode ;
26+ createChannelSplitter ( numberOfOutputs ?: number ) : ChannelSplitterNode ;
27+ createChannelMerger ( numberOfInputs ?: number ) : ChannelMergerNode ;
28+ createDynamicsCompressor ( ) : DynamicsCompressorNode ;
29+ createOscillator ( ) : OscillatorNode ;
30+ createWaveTable ( real : Float32Array , imag : Float32Array ) : IWaveTable ;
31+ onstatechange ( ) : void ;
32+ close ( ) : Promise < void > ;
33+ suspend ( ) : Promise < void > ;
34+ resume ( ) : Promise < void > ;
35+ }
136export interface IAudioGraph {
237 gainNode : GainNode ;
338 pannerNode ?: PannerNode ;
439 stereoPannerNode ?: StereoPannerNode ;
40+ delayNode ?: DelayNode ;
41+ scriptProcessorNode ?: ScriptProcessorNode ;
42+ analyserNode ?: AnalyserNode ;
43+ biquadFilterNode ?: BiquadFilterNode ;
44+ channelMergeNode ?: ChannelMergerNode ;
45+ channelSplitterNode ?: ChannelSplitterNode ;
46+ convolverNode ?: ConvolverNode ;
47+ dynamicCompressorNode ?: DynamicsCompressorNode ;
48+ oscillatorNode ?: OscillatorNode ;
49+ waveShaperNode ?: WaveShaperNode ;
550}
651export interface IAudioGraphOptions {
752 volume : number ;
@@ -11,20 +56,23 @@ export interface ISourceNodeOptions {
1156 onEnded : Function ;
1257}
1358export declare class PlayerAudio {
14- protected _context : AudioContext ;
59+ protected _audioContext : IAudioContext | null ;
1560 protected _contextState : string ;
1661 protected _audioGraph : IAudioGraph | null ;
17- constructor ( ) ;
62+ constructor ( customAudioContext ?: IAudioContext , customAudioGraph ?: IAudioGraph ) ;
1863 decodeAudio ( arrayBuffer : ArrayBuffer ) : Promise < AudioBuffer > ;
19- protected _getAudioContext ( ) : Promise < { } > ;
64+ protected _createAudioContext ( ) : IAudioContext ;
65+ protected _bindContextStateListener ( audioContext : IAudioContext ) : void ;
66+ getAudioContext ( ) : Promise < { } > ;
67+ setAudioContext ( audioContext : IAudioContext ) : void ;
2068 protected _destroyAudioContext ( ) : void ;
2169 protected _unfreezeAudioContext ( ) : Promise < void > ;
2270 protected _freezeAudioContext ( ) : Promise < void > ;
23- protected _createAudioGraph ( ) : void ;
2471 setAudioGraph ( audioGraph : IAudioGraph ) : void ;
2572 getAudioGraph ( ) : IAudioGraph ;
2673 createSourceNode ( sourceNodeOptions : ISourceNodeOptions ) : Promise < AudioBufferSourceNode > ;
27- connectSourceNodeToGraph ( sourceNode : AudioBufferSourceNode ) : void ;
74+ connectSourceNodeToGraphNodes ( sourceNode : AudioBufferSourceNode ) : void ;
75+ protected _createAudioGraph ( ) : void ;
2876 protected _destroyAudioGraph ( ) : void ;
2977 destroySourceNode ( sourceNode : AudioBufferSourceNode ) : AudioBufferSourceNode ;
3078 changeGainValue ( volume : number ) : void ;
0 commit comments