mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-02-28 12:15:46 +01:00
* Add various media classes
This commit is contained in:
parent
664c2b4bd4
commit
36c36ec61a
@ -1390,17 +1390,98 @@ Type
|
||||
end;
|
||||
|
||||
TJSMediaStreamTrack = class external name 'MediaStreamTrack' (TJSEventTarget)
|
||||
procedure stop;
|
||||
function getCapabilities : TJSObject;
|
||||
function getSettings : TJSObject;
|
||||
end;
|
||||
|
||||
TJSMediaStreamTrackProc = reference to procedure (aMediaStreamTrack : TJSMediaStreamTrack);
|
||||
|
||||
TJSMediaStreamTracks = class external name 'Array' (TJSArray)
|
||||
procedure forEach(const aCallBack : TJSMediaStreamTrackProc); overload;
|
||||
end;
|
||||
|
||||
TJSMediaConstraints = class external name 'Object' (TJSObject)
|
||||
video : boolean;
|
||||
audio : boolean;
|
||||
end;
|
||||
|
||||
TJSMediaStream = class external name 'MediaStream' (TJSEventTarget)
|
||||
Public
|
||||
procedure addTrack(aTrack : TJSMediaStreamTrack);
|
||||
function clone : TJSMediaStream;
|
||||
function getTrackById(aID : String) : TJSMediaStreamTrack;
|
||||
function getVideoTracks : TJSMediaStreamTracks;
|
||||
function getTracks : TJSMediaStreamTracks;
|
||||
procedure removeTrack(aTrack : TJSMediaStreamTrack);
|
||||
end;
|
||||
|
||||
{ TJSMediaDeviceInfo }
|
||||
|
||||
TJSMediaDeviceInfo = class external name 'MediaDeviceInfo' (TJSObject)
|
||||
private
|
||||
FDeviceID: string; external name 'deviceId';
|
||||
FGroupID: string; external name 'groupId';
|
||||
FKind: string; external name 'kind';
|
||||
FLabel: string; external name 'label';
|
||||
Public
|
||||
property deviceId : string read FDeviceID;
|
||||
property groupId : string read FGroupID;
|
||||
property kind : string read FKind;
|
||||
property label_ : string read FLabel;
|
||||
end;
|
||||
|
||||
TJSMediaDeviceInfoProc = reference to procedure (aMediaStreamTrack : TJSMediaStreamTrack);
|
||||
|
||||
{ TJSMediaDeviceInfoArray }
|
||||
|
||||
TJSMediaDeviceInfoArray = class external name 'Array' (TJSArray)
|
||||
private
|
||||
function GetDevices(Index: NativeInt): TJSMediaDeviceInfo; external name '[]';
|
||||
procedure SetDevices(Index: NativeInt; const aValue: TJSMediaDeviceInfo); external name '[]';
|
||||
public
|
||||
procedure forEach(const aCallBack : TJSMediaDeviceInfoProc); overload;
|
||||
property Devices[Index: NativeInt]: TJSMediaDeviceInfo read GetDevices write SetDevices; default;
|
||||
end;
|
||||
|
||||
TJSMediaTrackSupportedConstraints = class external name 'MediaTrackSupportedConstraints' (TJSObject)
|
||||
autoGainControl : boolean;
|
||||
width : boolean;
|
||||
height : boolean;
|
||||
aspectRation : Boolean;
|
||||
frameRate : Boolean;
|
||||
resizeMode : boolean;
|
||||
volume : boolean;
|
||||
sampleRate : boolean;
|
||||
sampleSize : Boolean;
|
||||
echoCancellation : Boolean;
|
||||
latency : boolean;
|
||||
noiseSuppression : boolean;
|
||||
channelCount : boolean;
|
||||
deviceId : boolean;
|
||||
groupId : boolean;
|
||||
displaySurface : boolean;
|
||||
logicalSurface : boolean;
|
||||
end;
|
||||
|
||||
TJSMediaTrackSupportedConstraintsProc = reference to procedure(aConstraints :TJSMediaTrackSupportedConstraints);
|
||||
|
||||
TJSMediaTrackSupportedConstraintsArray = class external name 'Array' (TJSArray)
|
||||
private
|
||||
function GetConstraint(Index: NativeInt): TJSMediaTrackSupportedConstraints; external name '[]';
|
||||
procedure SetConstraint(Index: NativeInt; const aValue: TJSMediaTrackSupportedConstraints); external name '[]';
|
||||
public
|
||||
procedure forEach(const aCallBack : TJSMediaTrackSupportedConstraintsProc); overload;
|
||||
property Constraints[Index: NativeInt]: TJSMediaTrackSupportedConstraints read GetConstraint write SetConstraint; default;
|
||||
end;
|
||||
|
||||
TJSMediaDevices = class external name 'MediaDevices' (TJSEventTarget)
|
||||
function enumerateDevices : TJSMediaDeviceInfoArray; async;
|
||||
function getSupportedConstraints : TJSMediaTrackSupportedConstraintsArray;
|
||||
function getDisplayMedia: TJSPromise;
|
||||
function getDisplayMedia(options : TJSObject) : TJSPromise; overload;
|
||||
function getDisplayMedia(options : TJSMediaConstraints) : TJSPromise; overload;
|
||||
Function getUserMedia(aConstraint : TJSOBject) : TJSPromise;
|
||||
function selectAudioOutput : TJSMediaDeviceInfo; async;
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user