File size: 1,977 Bytes
2b7aae2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import { Object3D } from './../core/Object3D';
import { AudioListener } from './AudioListener';
import { AudioContext } from './AudioContext';

// Extras / Audio /////////////////////////////////////////////////////////////////////

export class Audio<NodeType extends AudioNode = GainNode> extends Object3D {
	constructor(listener: AudioListener);
	type: 'Audio';

	listener: AudioListener;
	context: AudioContext;
	gain: GainNode;

	/**
	 * @default false
	 */
	autoplay: boolean;
	buffer: null | AudioBuffer;

	/**
	 * @default 0
	 */
	detune: number;

	/**
	 * @default false
	 */
	loop: boolean;

	/**
	 * @default 0
	 */
	loopStart: number;

	/**
	 * @default 0
	 */
	loopEnd: number;

	/**
	 * @default 0
	 */
	offset: number;

	/**
	 * @default undefined
	 */
	duration: number | undefined;

	/**
	 * @default 1
	 */
	playbackRate: number;

	/**
	 * @default false
	 */
	isPlaying: boolean;

	/**
	 * @default true
	 */
	hasPlaybackControl: boolean;

	/**
	 * @default 'empty'
	 */
	sourceType: string;
	source: null | AudioBufferSourceNode;

	/**
	 * @default []
	 */
	filters: AudioNode[];

	getOutput(): NodeType;
	setNodeSource(audioNode: AudioBufferSourceNode): this;
	setMediaElementSource(mediaElement: HTMLMediaElement): this;
	setMediaStreamSource(mediaStream: MediaStream): this;
	setBuffer(audioBuffer: AudioBuffer): this;
	play(delay?: number): this;
	onEnded(): void;
	pause(): this;
	stop(): this;
	connect(): this;
	disconnect(): this;
	setDetune(value: number): this;
	getDetune(): number;
	getFilters(): AudioNode[];
	setFilters(value: AudioNode[]): this;
	getFilter(): AudioNode;
	setFilter(filter: AudioNode): this;
	setPlaybackRate(value: number): this;
	getPlaybackRate(): number;
	getLoop(): boolean;
	setLoop(value: boolean): this;
	setLoopStart(value: number): this;
	setLoopEnd(value: number): this;
	getVolume(): number;
	setVolume(value: number): this;
	/**
	 * @deprecated Use {@link AudioLoader} instead.
	 */
	load(file: string): Audio;
}