* Add various media classes

This commit is contained in:
Michaël Van Canneyt 2025-02-27 21:26:45 +01:00
parent 664c2b4bd4
commit 36c36ec61a

View File

@ -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;