mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-02-28 21:34:32 +01:00
* Add various media classes
This commit is contained in:
parent
664c2b4bd4
commit
36c36ec61a
@ -1390,17 +1390,98 @@ Type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
TJSMediaStreamTrack = class external name 'MediaStreamTrack' (TJSEventTarget)
|
TJSMediaStreamTrack = class external name 'MediaStreamTrack' (TJSEventTarget)
|
||||||
|
procedure stop;
|
||||||
|
function getCapabilities : TJSObject;
|
||||||
|
function getSettings : TJSObject;
|
||||||
end;
|
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)
|
TJSMediaConstraints = class external name 'Object' (TJSObject)
|
||||||
video : boolean;
|
video : boolean;
|
||||||
audio : boolean;
|
audio : boolean;
|
||||||
end;
|
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)
|
TJSMediaDevices = class external name 'MediaDevices' (TJSEventTarget)
|
||||||
|
function enumerateDevices : TJSMediaDeviceInfoArray; async;
|
||||||
|
function getSupportedConstraints : TJSMediaTrackSupportedConstraintsArray;
|
||||||
function getDisplayMedia: TJSPromise;
|
function getDisplayMedia: TJSPromise;
|
||||||
function getDisplayMedia(options : TJSObject) : TJSPromise; overload;
|
function getDisplayMedia(options : TJSObject) : TJSPromise; overload;
|
||||||
function getDisplayMedia(options : TJSMediaConstraints) : TJSPromise; overload;
|
function getDisplayMedia(options : TJSMediaConstraints) : TJSPromise; overload;
|
||||||
Function getUserMedia(aConstraint : TJSOBject) : TJSPromise;
|
function selectAudioOutput : TJSMediaDeviceInfo; async;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user