mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
Merge pull request #9317 from dbrgn/promises
Add promise based API to RTCPeerConnection
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
/// <reference path="MediaStream.d.ts" />
|
||||
/// <reference path="RTCPeerConnection.d.ts" />
|
||||
|
||||
let voidpromise: Promise<void>;
|
||||
|
||||
var config: RTCConfiguration =
|
||||
{ iceServers: [{ urls: "stun.l.google.com:19302" }] };
|
||||
var constraints: RTCMediaConstraints =
|
||||
@@ -27,34 +29,27 @@ peerConnection.onicecandidate = ev => console.log(ev.type);
|
||||
peerConnection.onremovestream = ev => console.log(ev.type);
|
||||
peerConnection.onstatechange = ev => console.log(ev.type);
|
||||
|
||||
peerConnection.createOffer(
|
||||
offer => {
|
||||
peerConnection.setLocalDescription(offer,
|
||||
() => console.log("set local description"),
|
||||
error => console.log("Error setting local description: " + error));
|
||||
},
|
||||
error => console.log("Error creating offer: " + error));
|
||||
peerConnection.createOffer();
|
||||
let offer2: Promise<RTCSessionDescription> = peerConnection.createOffer({
|
||||
voiceActivityDetection: true,
|
||||
iceRestart: false
|
||||
});
|
||||
|
||||
var type: string = RTCSdpType[RTCSdpType.offer];
|
||||
var offer: RTCSessionDescriptionInit = { type: type, sdp: "some sdp" };
|
||||
var sessionDescription = new RTCSessionDescription(offer);
|
||||
|
||||
peerConnection.setRemoteDescription(sessionDescription, () => {
|
||||
peerConnection.createAnswer(
|
||||
answer => {
|
||||
peerConnection.setLocalDescription(answer,
|
||||
() => console.log('Set local description'),
|
||||
error => console.log(
|
||||
"Error setting local description from created answer: " + error +
|
||||
"; answer.sdp=" + answer.sdp));
|
||||
},
|
||||
error => console.log("Error creating answer: " + error));
|
||||
},
|
||||
error => console.log('Error setting remote description: ' + error +
|
||||
"; offer.sdp=" + offer.sdp));
|
||||
peerConnection.setRemoteDescription(sessionDescription).then(
|
||||
() => peerConnection.createAnswer(),
|
||||
error => console.log('Error setting remote description: ' + error + "; offer.sdp=" + offer.sdp)
|
||||
);
|
||||
|
||||
var webkitSessionDescription = new webkitRTCSessionDescription(offer);
|
||||
|
||||
// New syntax
|
||||
voidpromise = peerConnection.setLocalDescription(webkitSessionDescription);
|
||||
|
||||
// Legacy syntax
|
||||
peerConnection.setRemoteDescription(webkitSessionDescription, () => {
|
||||
peerConnection.createAnswer(
|
||||
answer => {
|
||||
@@ -71,20 +66,10 @@ error => console.log('Error setting remote description: ' + error +
|
||||
|
||||
var mozSessionDescription = new mozRTCSessionDescription(offer);
|
||||
|
||||
peerConnection.setRemoteDescription(mozSessionDescription, () => {
|
||||
peerConnection.createAnswer(
|
||||
answer => {
|
||||
peerConnection.setLocalDescription(answer,
|
||||
() => console.log('Set local description'),
|
||||
error => console.log(
|
||||
"Error setting local description from created answer: " + error +
|
||||
"; answer.sdp=" + answer.sdp));
|
||||
},
|
||||
error => console.log("Error creating answer: " + error));
|
||||
},
|
||||
error => console.log('Error setting remote description: ' + error +
|
||||
"; offer.sdp=" + offer.sdp));
|
||||
peerConnection.setRemoteDescription(mozSessionDescription);
|
||||
|
||||
var wkPeerConnection: webkitRTCPeerConnection =
|
||||
new webkitRTCPeerConnection(config, constraints);
|
||||
|
||||
let candidate: RTCIceCandidate = {'candidate': 'foobar'};
|
||||
voidpromise = peerConnection.addIceCandidate(candidate);
|
||||
|
||||
Vendored
+29
-11
@@ -243,24 +243,40 @@ interface RTCStatsCallback {
|
||||
(report: RTCStatsReport): void;
|
||||
}
|
||||
|
||||
interface RTCOfferAnswerOptions {
|
||||
voiceActivityDetection ?: boolean; // default = true
|
||||
}
|
||||
|
||||
interface RTCOfferOptions extends RTCOfferAnswerOptions {
|
||||
iceRestart ?: boolean; // default = false
|
||||
}
|
||||
|
||||
interface RTCAnswerOptions extends RTCOfferAnswerOptions { }
|
||||
|
||||
interface RTCPeerConnection {
|
||||
|
||||
createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescription>;
|
||||
createOffer(successCallback: RTCSessionDescriptionCallback,
|
||||
failureCallback?: RTCPeerConnectionErrorCallback,
|
||||
constraints?: RTCMediaConstraints): void;
|
||||
constraints?: RTCMediaConstraints): void; // Deprecated
|
||||
createAnswer(options?: RTCAnswerOptions): Promise<RTCSessionDescription>;
|
||||
createAnswer(successCallback: RTCSessionDescriptionCallback,
|
||||
failureCallback?: RTCPeerConnectionErrorCallback,
|
||||
constraints?: RTCMediaConstraints): void;
|
||||
constraints?: RTCMediaConstraints): void; // Deprecated
|
||||
setLocalDescription(description: RTCSessionDescription | RTCSessionDescriptionInit): Promise<void>;
|
||||
setLocalDescription(description: RTCSessionDescription,
|
||||
successCallback?: RTCVoidCallback,
|
||||
failureCallback?: RTCPeerConnectionErrorCallback): void;
|
||||
localDescription: RTCSessionDescription;
|
||||
failureCallback?: RTCPeerConnectionErrorCallback): void; // Deprecated
|
||||
setRemoteDescription(description: RTCSessionDescription | RTCSessionDescriptionInit): Promise<void>;
|
||||
setRemoteDescription(description: RTCSessionDescription,
|
||||
successCallback?: RTCVoidCallback,
|
||||
failureCallback?: RTCPeerConnectionErrorCallback): void;
|
||||
localDescription: RTCSessionDescription;
|
||||
remoteDescription: RTCSessionDescription;
|
||||
signalingState: string; // RTCSignalingState; see TODO(1)
|
||||
updateIce(configuration?: RTCConfiguration,
|
||||
constraints?: RTCMediaConstraints): void;
|
||||
addIceCandidate(candidate: RTCIceCandidate): Promise<void>;
|
||||
addIceCandidate(candidate:RTCIceCandidate,
|
||||
successCallback:() => void,
|
||||
failureCallback:RTCPeerConnectionErrorCallback): void;
|
||||
@@ -284,8 +300,10 @@ interface RTCPeerConnection {
|
||||
onicecandidate: (event: RTCIceCandidateEvent) => void;
|
||||
onidentityresult: (event: Event) => void;
|
||||
onsignalingstatechange: (event: Event) => void;
|
||||
getStats: (successCallback: RTCStatsCallback,
|
||||
failureCallback: RTCPeerConnectionErrorCallback) => void;
|
||||
getStats(selector: MediaStreamTrack): Promise<RTCStatsReport>;
|
||||
getStats(selector: MediaStreamTrack, // nullable
|
||||
successCallback: RTCStatsCallback,
|
||||
failureCallback: RTCPeerConnectionErrorCallback): void;
|
||||
}
|
||||
declare var RTCPeerConnection: {
|
||||
prototype: RTCPeerConnection;
|
||||
@@ -294,7 +312,7 @@ declare var RTCPeerConnection: {
|
||||
};
|
||||
|
||||
interface RTCIceCandidate {
|
||||
candidate?: string;
|
||||
candidate: string;
|
||||
sdpMid?: string;
|
||||
sdpMLineIndex?: number;
|
||||
}
|
||||
@@ -304,7 +322,7 @@ declare var RTCIceCandidate: {
|
||||
};
|
||||
|
||||
interface webkitRTCIceCandidate extends RTCIceCandidate {
|
||||
candidate?: string;
|
||||
candidate: string;
|
||||
sdpMid?: string;
|
||||
sdpMLineIndex?: number;
|
||||
}
|
||||
@@ -314,7 +332,7 @@ declare var webkitRTCIceCandidate: {
|
||||
};
|
||||
|
||||
interface mozRTCIceCandidate extends RTCIceCandidate {
|
||||
candidate?: string;
|
||||
candidate: string;
|
||||
sdpMid?: string;
|
||||
sdpMLineIndex?: number;
|
||||
}
|
||||
@@ -325,8 +343,8 @@ declare var mozRTCIceCandidate: {
|
||||
|
||||
interface RTCIceCandidateInit {
|
||||
candidate: string;
|
||||
sdpMid: string;
|
||||
sdpMLineIndex: number;
|
||||
sdpMid?: string;
|
||||
sdpMLineIndex?: number;
|
||||
}
|
||||
declare var RTCIceCandidateInit:{
|
||||
prototype: RTCIceCandidateInit;
|
||||
|
||||
Reference in New Issue
Block a user