diff --git a/webrtc/MediaStream-tests.ts b/webrtc/MediaStream-tests.ts
new file mode 100644
index 0000000000..290e2ff3c7
--- /dev/null
+++ b/webrtc/MediaStream-tests.ts
@@ -0,0 +1,32 @@
+///
+var mediaStreamConstraints: MediaStreamConstraints = { audio: true, video: true };
+
+var mediaTrackConstraintSet: MediaTrackConstraintSet = {};
+var mediaTrackConstraintArray: MediaTrackConstraint[] = [];
+var mediaTrackConstraints: MediaTrackConstraints = { mandatory: mediaTrackConstraintSet, optional: mediaTrackConstraintArray }
+
+navigator.getUserMedia(mediaStreamConstraints,
+ stream => {
+ console.log('label:' + stream.label);
+ console.log('ended:' + stream.ended);
+ stream.onended = event => console.log('Stream ended');
+ var objectUrl = URL.createObjectURL(stream);
+ var wkObjectUrl = webkitURL.createObjectURL(stream);
+ },
+ error => {
+ console.log('Error message: ' + error.message);
+ console.log('Error name: ' + error.name);
+ });
+
+navigator.webkitGetUserMedia(mediaStreamConstraints,
+ stream => {
+ console.log('label:' + stream.label);
+ console.log('ended:' + stream.ended);
+ stream.onended = event => console.log('Stream ended');
+ var objectUrl = URL.createObjectURL(stream);
+ var wkObjectUrl = webkitURL.createObjectURL(stream);
+ },
+ error => {
+ console.log('Error message: ' + error.message);
+ console.log('Error name: ' + error.name);
+ });
\ No newline at end of file
diff --git a/webrtc/MediaStream.d.ts b/webrtc/MediaStream.d.ts
index 7d6b3759b8..23aee0987d 100644
--- a/webrtc/MediaStream.d.ts
+++ b/webrtc/MediaStream.d.ts
@@ -35,8 +35,8 @@ declare var MediaTrackConstraint: {
}
interface Navigator {
- getUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: any) => void , errorCallback: (error: Error) => void );
- webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: any) => void , errorCallback: (error: Error) => void );
+ getUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: LocalMediaStream) => void , errorCallback: (error: Error) => void );
+ webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: (stream: LocalMediaStream) => void , errorCallback: (error: Error) => void );
}
interface EventHandler { (event: Event): void; }
diff --git a/webrtc/RTCPeerConnection-tests.ts b/webrtc/RTCPeerConnection-tests.ts
new file mode 100644
index 0000000000..d7b5a07f74
--- /dev/null
+++ b/webrtc/RTCPeerConnection-tests.ts
@@ -0,0 +1,51 @@
+///
+///
+
+var config: RTCConfiguration = { iceServers: [{ url: "stun.l.google.com:19302" }] };
+var constraints: MediaConstraints = { mandatory: { OfferToReceiveAudio: true, OfferToReceiveVideo: true } };
+
+var peerConnection: RTCPeerConnection = new RTCPeerConnection(config, constraints);
+
+navigator.getUserMedia({ audio: true, video: true },
+ stream => {
+ peerConnection.addStream(stream);
+ },
+ error => {
+ console.log('Error message: ' + error.message);
+ console.log('Error name: ' + error.name);
+ });
+
+peerConnection.onaddstream = ev => console.log(ev.type);
+peerConnection.ondatachannel = ev => console.log(ev.type);
+peerConnection.onicechange = ev => console.log(ev.type);
+peerConnection.onnegotiationneeded = ev => console.log(ev.type);
+peerConnection.onopen = ev => console.log(ev.type);
+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));
+
+var type: 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));
+
+var wkPeerConnection: webkitRTCPeerConnection = new webkitRTCPeerConnection(config, constraints);
+