@glokon/guacamole-common-js
Version:
Guacamole common js with typescript type definitions
70 lines (64 loc) • 3.02 kB
TypeScript
import { Mimetype } from './GuacCommon';
import { OutputStream } from './OutputStream';
/**
* Abstract audio recorder which streams arbitrary audio data to an underlying
* Guacamole.OutputStream. It is up to implementations of this class to provide
* some means of handling this Guacamole.OutputStream. Data produced by the
* recorder is to be sent along the provided stream immediately.
*/
export abstract class AudioRecorder {
/**
* Determines whether the given mimetype is supported by any built-in
* implementation of Guacamole.AudioRecorder, and thus will be properly handled
* by Guacamole.AudioRecorder.getInstance().
*
* @param mimetype The mimetype to check.
*
* @returns true if the given mimetype is supported by any built-in Guacamole.AudioRecorder, false otherwise.
*/
static isSupportedType(mimetype: Mimetype): boolean;
/**
* Returns a list of all mimetypes supported by any built-in
* Guacamole.AudioRecorder, in rough order of priority. Beware that only the
* core mimetypes themselves will be listed. Any mimetype parameters, even
* required ones, will not be included in the list. For example, "audio/L8" is
* a supported raw audio mimetype that is supported, but it is invalid without
* additional parameters. Something like "audio/L8;rate=44100" would be valid,
* however (see https://tools.ietf.org/html/rfc4856).
*
* A list of all mimetypes supported by any built-in
* Guacamole.AudioRecorder, excluding any parameters.
*/
static getSupportedTypes(): string[];
/**
* Returns an instance of Guacamole.AudioRecorder providing support for the
* given audio format. If support for the given audio format is not available,
* null is returned.
*
* @param stream The Guacamole.OutputStream to send audio data through.
*
* @param mimetype The mimetype of the audio data to be sent along the provided stream.
* @return A Guacamole.AudioRecorder instance supporting the given mimetype and
* writing to the given stream, or null if support for the given mimetype is absent.
*/
static getInstance(stream: OutputStream, mimetype: Mimetype): AudioRecorder | null;
/**
* Callback which is invoked when the audio recording process has stopped
* and the underlying Guacamole stream has been closed normally. Audio will
* only resume recording if a new Guacamole.AudioRecorder is started. This
* Guacamole.AudioRecorder instance MAY NOT be reused.
*
* @event
*/
onclose: null | (() => void);
/**
* Callback which is invoked when the audio recording process cannot
* continue due to an error, if it has started at all. The underlying
* Guacamole stream is automatically closed. Future attempts to record
* audio should not be made, and this Guacamole.AudioRecorder instance
* MAY NOT be reused.
*
* @event
*/
onerror: null | (() => void);
}