11import 'dart:async' ;
22import 'dart:convert' ;
33import 'dart:html' as html;
4+ import 'package:js/js.dart' ;
45import 'package:webrtc_interface/webrtc_interface.dart' ;
56
67import 'media_recorder_impl.dart' ;
78import 'media_stream_impl.dart' ;
89import 'navigator_impl.dart' ;
910import 'rtc_peerconnection_impl.dart' ;
11+ import 'rtc_rtp_capailities_imp.dart' ;
12+
13+ @JS ('RTCRtpSender' )
14+ @anonymous
15+ class RTCRtpSenderJs {
16+ external static Object getCapabilities (String kind);
17+ }
18+
19+ @JS ('RTCRtpReceiver' )
20+ @anonymous
21+ class RTCRtpReceiverJs {
22+ external static Object getCapabilities (String kind);
23+ }
1024
1125class RTCFactoryWeb extends RTCFactory {
1226 RTCFactoryWeb ._internal ();
@@ -47,6 +61,18 @@ class RTCFactoryWeb extends RTCFactory {
4761
4862 @override
4963 Navigator get navigator => NavigatorWeb ();
64+
65+ @override
66+ Future <RTCRtpCapabilities > getRtpReceiverCapabilities (String kind) async {
67+ var caps = RTCRtpReceiverJs .getCapabilities (kind);
68+ return RTCRtpCapabilitiesWeb .fromJsObject (caps);
69+ }
70+
71+ @override
72+ Future <RTCRtpCapabilities > getRtpSenderCapabilities (String kind) async {
73+ var caps = RTCRtpSenderJs .getCapabilities (kind);
74+ return RTCRtpCapabilitiesWeb .fromJsObject (caps);
75+ }
5076}
5177
5278Future <RTCPeerConnection > createPeerConnection (
@@ -60,6 +86,14 @@ Future<MediaStream> createLocalMediaStream(String label) {
6086 return RTCFactoryWeb .instance.createLocalMediaStream (label);
6187}
6288
89+ Future <RTCRtpCapabilities > getRtpReceiverCapabilities (String kind) async {
90+ return RTCFactoryWeb .instance.getRtpReceiverCapabilities (kind);
91+ }
92+
93+ Future <RTCRtpCapabilities > getRtpSenderCapabilities (String kind) async {
94+ return RTCFactoryWeb .instance.getRtpSenderCapabilities (kind);
95+ }
96+
6397MediaRecorder mediaRecorder () {
6498 return RTCFactoryWeb .instance.mediaRecorder ();
6599}
0 commit comments