in client/src/util/audio.ts [36:63]
export async function startRecording(bufferSize: number, mimeTypes?: string[]): Promise<RecordingStream> {
if (!audioRecordingIsAvailable()) {
throw new Error('Browser does not support audio recording');
}
return new Promise<RecordingStream>((resolve, reject) => {
navigator.mediaDevices.getUserMedia({video: false, audio: true}).then(
(stream) => {
if (typeof(MediaRecorder) !== 'undefined') {
logger.log('Starting MediaRecorder recording');
startMediaRecorderRecording(stream, mimeTypes).then(
str => resolve(str),
ex => reject(ex)
);
} else {
logger.log('Starting AudioContext recording');
startAudioContextRecording(stream, bufferSize).then(
str => resolve(str),
ex => reject(ex)
);
}
},
(err) => {
logger.warn('Error creating audio stream', err);
reject(err);
}
);
});
}