8000 fix: Use low-level jsutil to call createOffer/createrAnswer to solve … · efraespada/flutter-webrtc@bb20331 · GitHub
[go: up one dir, main page]

Skip to content

Commit bb20331

Browse files
committed
fix: Use low-level jsutil to call createOffer/createrAnswer to solve the issue on safari/firefox.
1 parent 750141b commit bb20331

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

lib/src/web/rtc_peerconnection_impl.dart

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,15 +177,21 @@ class RTCPeerConnectionWeb extends RTCPeerConnection {
177177
@override
178178
Future<RTCSessionDescription> createOffer(
179179
[Map<String, dynamic>? constraints]) async {
180-
final offer = await _jsPc.createOffer(constraints);
181-
return _sessionFromJs(offer);
180+
final args = constraints != null ? [jsutil.jsify(constraints)] : [];
181+
final desc = await jsutil.promiseToFuture<dynamic>(
182+
jsutil.callMethod(_jsPc, 'createOffer', args));
183+
return RTCSessionDescription(
184+
jsutil.getProperty(desc, 'sdp'), jsutil.getProperty(desc, 'type'));
182185
}
183186

184187
@override
185188
Future<RTCSessionDescription> createAnswer(
186189
[Map<String, dynamic>? constraints]) async {
187-
final answer = await _jsPc.createAnswer(constraints);
188-
return _sessionFromJs(answer);
190+
final args = constraints != null ? [jsutil.jsify(constraints)] : [];
191+
final desc = await jsutil.promiseToFuture<dynamic>(
192+
jsutil.callMethod(_jsPc, 'createAnswer', args));
193+
return RTCSessionDescription(
194+
jsutil.getProperty(desc, 'sdp'), jsutil.getProperty(desc, 'type'));
189195
}
190196

191197
@override

0 commit comments

Comments
 (0)
0