8000 perf: Improve MethodChannel calling. · strogo/flutter-webrtc@5a2705c · GitHub
[go: up one dir, main page]

Skip to content

Commit 5a2705c

Browse files
committed
perf: Improve MethodChannel calling.
1 parent 4bfe86c commit 5a2705c

16 files changed

+55
-93
lines changed

lib/src/helper.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class Helper {
5050
}
5151

5252
if (!kIsWeb) {
53-
return WebRTC.methodChannel().invokeMethod<bool>(
53+
return WebRTC.invokeMethod(
5454
'mediaStreamTrackSwitchCamera',
5555
<String, dynamic>{'trackId': track.id},
5656
).then((value) => value ?? false);
@@ -91,8 +91,7 @@ class Helper {
9191
constraints['volume'] = volume;
9292
await track.applyConstraints(constraints);
9393
} else {
94-
var _channel = WebRTC.methodChannel();
95-
await _channel.invokeMethod(
94+
await WebRTC.invokeMethod(
9695
'setVolume',
9796
<String, dynamic>{'trackId': track.id, 'volume': volume},
9897
);
@@ -109,7 +108,7 @@ class Helper {
109108

110109
if (!kIsWeb) {
111110
try {
112-
await WebRTC.methodChannel().invokeMethod(
111+
await WebRTC.invokeMethod(
113112
'setMicrophoneMute',
114113
<String, dynamic>{'trackId': track.id, 'mute': mute},
115114
);

lib/src/native/factory_impl.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,10 @@ class RTCFactoryNative extends RTCFactory {
2020

2121
@override
2222
Future<MediaStream> createLocalMediaStream(String label) async {
23-
var _channel = WebRTC.methodChannel();
24-
25-
final response = await _channel
26-
.invokeMethod<Map<dynamic, dynamic>>('createLocalMediaStream');
27-
23+
final response = await WebRTC.invokeMethod('createLocalMediaStream');
2824
if (response == null) {
2925
throw Exception('createLocalMediaStream return null, something wrong');
3026
}
31-
3227
return MediaStreamNative(response['streamId'], label);
3328
}
3429

lib/src/native/media_recorder_impl.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class MediaRecorderNative extends MediaRecorder {
2020
throw Exception('Neither audio nor video track were provided');
2121
}
2222

23-
await WebRTC.methodChannel().invokeMethod('startRecordToFile', {
23+
await WebRTC.invokeMethod('startRecordToFile', {
2424
'path': path,
2525
if (audioChannel != null) 'audioChannel': audioChannel.index,
2626
if (videoTrack != null) 'videoTrackId': videoTrack.id,
@@ -35,6 +35,6 @@ class MediaRecorderNative extends MediaRecorder {
3535
}
3636

3737
@override
38-
Future<dynamic> stop() async => await WebRTC.methodChannel()
39-
.invokeMethod('stopRecordToFile', {'recorderId': _recorderId});
38+
Future<dynamic> stop() async => await WebRTC.invokeMethod(
39+
'stopRecordToFile', {'recorderId': _recorderId});
4040
}

lib/src/native/media_stream_impl.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ class MediaStreamNative extends MediaStream {
1414
..setMediaTracks(map['audioTracks'], map['videoTracks']);
1515
}
1616

17-
final _channel = WebRTC.methodChannel();
18-
1917
final _audioTracks = <MediaStreamTrack>[];
2018
final _videoTracks = <MediaStreamTrack>[];
2119

@@ -59,7 +57,7 @@ class MediaStreamNative extends MediaStream {
5957
}
6058

6159
if (addToNative) {
62-
await _channel.invokeMethod('mediaStreamAddTrack',
60+
await WebRTC.invokeMethod('mediaStreamAddTrack',
6361
<String, dynamic>{'streamId': id, 'trackId': track.id});
6462
}
6563
}
@@ -74,7 +72,7 @@ class MediaStreamNative extends MediaStream {
7472
}
7573

7674
if (removeFromNative) {
77-
await _channel.invokeMethod('mediaStreamRemoveTrack',
75+
await WebRTC.invokeMethod('mediaStreamRemoveTrack',
7876
<String, dynamic>{'streamId': id, 'trackId': track.id});
7977
}
8078
}
@@ -91,7 +89,7 @@ class MediaStreamNative extends MediaStream {
9189

9290
@override
9391
Future<Null> dispose() async {
94-
await _channel.invokeMethod(
92+
await WebRTC.invokeMethod(
9593
'streamDispose',
9694
<String, dynamic>{'streamId': id},
9795
);

lib/src/native/media_stream_track_impl.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ class MediaStreamTrackNative extends MediaStreamTrack {
1515
return MediaStreamTrackNative(
1616
map['id'], map['label'], map['kind'], map['enabled']);
1717
}
18-
19-
final _channel = WebRTC.methodChannel();
2018
final String _trackId;
2119
final String _label;
2220
final String _kind;
@@ -26,7 +24,7 @@ class MediaStreamTrackNative extends MediaStreamTrack {
2624

2725
@override
2826
set enabled(bool enabled) {
29-
_channel.invokeMethod('mediaStreamTrackSetEnable',
27+
WebRTC.invokeMethod('mediaStreamTrackSetEnable',
3028
<String, dynamic>{'trackId': _trackId, 'enabled': enabled});
3129
_enabled = enabled;
3230

@@ -52,13 +50,13 @@ class MediaStreamTrackNative extends MediaStreamTrack {
5250
bool get muted => _muted;
5351

5452
@override
55-
Future<bool> hasTorch() => _channel.invokeMethod<bool>(
53+
Future<bool> hasTorch() => WebRTC.invokeMethod(
5654
'mediaStreamTrackHasTorch',
5755
<String, dynamic>{'trackId': _trackId},
5856
).then((value) => value ?? false);
5957

6058
@override
61-
Future<void> setTorch(bool torch) => _channel.invokeMethod(
59+
Future<void> setTorch(bool torch) => WebRTC.invokeMethod(
6260
'mediaStreamTrackSetTorch',
6361
<String, dynamic>{'trackId': _trackId, 'torch': torch},
6462
);
@@ -69,7 +67,7 @@ class MediaStreamTrackNative extends MediaStreamTrack {
6967
@override
7068
void enableSpeakerphone(bool enable) async {
7169
print('MediaStreamTrack:enableSpeakerphone $enable');
72-
await _channel.invokeMethod(
70+
await WebRTC.invokeMethod(
7371
'enableSpeakerphone',
7472
<String, dynamic>{'trackId': _trackId, 'enable': enable},
7573
);
@@ -78,7 +76,7 @@ class MediaStreamTrackNative extends MediaStreamTrack {
7876
@override
7977
Future<ByteBuffer> captureFrame() async {
8078
var filePath = await getTemporaryDirectory();
81-
await _channel.invokeMethod<void>(
79+
await WebRTC.invokeMethod(
8280
'captureFrame',
8381
<String, dynamic>{
8482
'trackId': _trackId,
@@ -110,7 +108,7 @@ class MediaStreamTrackNative extends MediaStreamTrack {
110108

111109
@override
112110
Future<void> stop() async {
113-
await _channel.invokeMethod(
111+
await WebRTC.invokeMethod(
114112
'trackDispose',
115113
<String, dynamic>{'trackId': _trackId},
116114
);

lib/src/native/mediadevices_impl.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ class MediaDeviceNative extends MediaDevices {
1111
@override
1212
Future<MediaStream> getUserMedia(
1313
Map<String, dynamic> mediaConstraints) async {
14-
var channel = WebRTC.methodChannel();
1514
try {
16-
final response = await channel.invokeMethod<Map<dynamic, dynamic>>(
15+
final response = await WebRTC.invokeMethod(
1716
'getUserMedia',
1817
<String, dynamic>{'constraints': mediaConstraints},
1918
);
@@ -34,9 +33,8 @@ class MediaDeviceNative extends MediaDevices {
3433
@override
3534
Future<MediaStream> getDisplayMedia(
3635
Map<String, dynamic> mediaConstraints) async {
37-
var channel = WebRTC.methodChannel();
3836
try {
39-
final response = await channel.invokeMethod<Map<dynamic, dynamic>>(
37+
final response = await WebRTC.invokeMethod(
4038
'getDisplayMedia',
4139
<String, dynamic>{'constraints': mediaConstraints},
4240
);

lib/src/native/rtc_data_channel_impl.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ class RTCDataChannelNative extends RTCDataChannel {
2626
final String _label;
2727
final int _dataChannelId;
2828
RTCDataChannelState? _state;
29-
final _channel = WebRTC.methodChannel();
3029
StreamSubscription<dynamic>? _eventSubscription;
3130

3231
@override
@@ -84,7 +83,7 @@ class RTCDataChannelNative extends RTCDataChannel {
8483

8584
@override
8685
Future<void> send(RTCDataChannelMessage message) async {
87-
await _channel.invokeMethod('dataChannelSend', <String, dynamic>{
86+
await WebRTC.invokeMethod('dataChannelSend', <String, dynamic>{
8887
'peerConnectionId': _peerConnectionId,
8988
'dataChannelId': _dataChannelId,
9089
'type': message.isBinary ? 'binary' : 'text',
@@ -97,7 +96,7 @@ class RTCDataChannelNative extends RTCDataChannel {
9796
await _stateChangeController.close();
9897
await _messageController.close();
9998
await _eventSubscription?.cancel();
100-
await _channel.invokeMethod('dataChannelClose', <String, dynamic>{
99+
await WebRTC.invokeMethod('dataChannelClose', <String, dynamic>{
101100
'peerConnectionId': _peerConnectionId,
102101
'dataChannelId': _dataChannelId
103102
});

lib/src/native/rtc_dtmf_sender_impl.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ class RTCDTMFSenderNative extends RTCDTMFSender {
66
// peer connection Id must be defined as a variable where this function will be called.
77
final String _peerConnectionId;
88
final String _rtpSenderId;
9-
final _channel = WebRTC.methodChannel();
109

1110
@override
1211
Future<void> insertDTMF(String tones,
1312
{int duration = 100, int interToneGap = 70}) async {
14-
await _channel.invokeMethod('sendDtmf', <String, dynamic>{
13+
await WebRTC.invokeMethod('sendDtmf', <String, dynamic>{
1514
'peerConnectionId': _peerConnectionId,
1615
'rtpSenderId': _rtpSenderId,
1716
'tone': tones,
@@ -22,7 +21,7 @@ class RTCDTMFSenderNative extends RTCDTMFSender {
2221

2322
@override
2423
Future<bool> canInsertDtmf() async {
25-
return await _channel.invokeMethod('canInsertDtmf', <String, dynamic>{
24+
return await WebRTC.invokeMethod('canInsertDtmf', <String, dynamic>{
2625
'peerConnectionId': _peerConnectionId,
2726
'rtpSenderId': _rtpSenderId
2827
});

lib/src/native/rtc_peerconnection_impl.dart

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
3636

3737
// private:
3838
final String _peerConnectionId;
39-
final _channel = WebRTC.methodChannel();
4039
StreamSubscription<dynamic>? _eventSubscription;
4140
final _localStreams = <MediaStream>[];
4241
final _remoteStreams = <MediaStream>[];
@@ -226,7 +225,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
226225
@override
227226
Future<void> dispose() async {
228227
await _eventSubscription?.cancel();
229-
await _channel.invokeMethod(
228+
await WebRTC.invokeMethod(
230229
'peerConnectionDispose',
231230
<String, dynamic>{'peerConnectionId': _peerConnectionId},
232231
);
@@ -243,7 +242,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
243242
Future<void> setConfiguration(Map<String, dynamic> configuration) async {
244243
_configuration = configuration;
245244
try {
246-
await _channel.invokeMethod('setConfiguration', <String, dynamic>{
245+
await WebRTC.invokeMethod('setConfiguration', <String, dynamic>{
247246
'peerConnectionId': _peerConnectionId,
248247
'configuration': configuration,
249248
});
@@ -291,7 +290,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
291290
@override
292291
Future<void> addStream(MediaStream stream) async {
293292
_localStreams.add(stream);
294-
await _channel.invokeMethod('addStream', <String, dynamic>{
293+
await WebRTC.invokeMethod('addStream', <String, dynamic>{
295294
'peerConnectionId': _peerConnectionId,
296295
'streamId': stream.id,
297296
});
@@ -300,7 +299,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
300299
@override
301300
Future<void> removeStream(MediaStream stream) async {
302301
_localStreams.removeWhere((it) => it.id == stream.id);
303-
await _channel.invokeMethod('removeStream', <String, dynamic>{
302+
await WebRTC.invokeMethod('removeStream', <String, dynamic>{
304303
'peerConnectionId': _peerConnectionId,
305304
'streamId': stream.id,
306305
});
@@ -309,7 +308,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
309308
@override
310309
Future<void> setLocalDescription(RTCSessionDescription description) async {
311310
try {
312-
await _channel.invokeMethod('setLocalDescription', <String, dynamic>{
311+
await WebRTC.invokeMethod('setLocalDescription', <String, dynamic>{
313312
'peerConnectionId': _peerConnectionId,
314313
'description': description.toMap(),
315314
});
@@ -321,7 +320,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
321320
@override
322321
Future<void> setRemoteDescription(RTCSessionDescription description) async {
323322
try {
324-
await _channel.invokeMethod('setRemoteDescription', <String, dynamic>{
323+
await WebRTC.invokeMethod('setRemoteDescription', <String, dynamic>{
325324
'peerConnectionId': _peerConnectionId,
326325
'description': description.toMap(),
327326
});
@@ -370,7 +369,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
370369

371370
@override
372371
Future<void> addCandidate(RTCIceCandidate candidate) async {
373-
await _channel.invokeMethod('addCandidate', <String, dynamic>{
372+
await WebRTC.invokeMethod('addCandidate', <String, dynamic>{
374373
'peerConnectionId': _peerConnectionId,
375374
'candidate': candidate.toMap(),
376375
});
@@ -412,8 +411,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
412411
Future<RTCDataChannel> createDataChannel(
413412
String label, RTCDataChannelInit dataChannelDict) async {
414413
try {
415-
await _channel.invokeMethod<Map<dynamic, dynamic>>(
416-
'createDataChannel', <String, dynamic>{
414+
await WebRTC.invokeMethod('createDataChannel', <String, dynamic>{
417415
'peerConnectionId': _peerConnectionId,
418416
'label': label,
419417
'dataChannelDict': dataChannelDict.toMap()
@@ -434,7 +432,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
434432
@override
435433
Future<void> close() async {
436434
try {
437-
await _channel.invokeMethod('peerConnectionClose', <String, dynamic>{
435+
await WebRTC.invokeMethod('peerConnectionClose', <String, dynamic>{
438436
'peerConnectionId': _peerConnectionId,
439437
});
440438
} on PlatformException catch (e) {
@@ -446,7 +444,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
446444
@override
447445
Future<List<RTCRtpSender>> getSenders() async {
448446
try {
449-
final response = await _channel.invokeMethod('getSenders',
447+
final response = await WebRTC.invokeMethod('getSenders',
450448
<String, dynamic>{'peerConnectionId': _peerConnectionId});
451449
return RTCRtpSenderNative.fromMaps(response['senders'],
452450
peerConnectionId: _peerConnectionId);
@@ -458,7 +456,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
458456
@override
459457
Future<List<RTCRtpReceiver>> getReceivers() async {
460458
try {
461-
final response = await _channel.invokeMethod('getReceivers',
459+
final response = await WebRTC.invokeMethod('getReceivers',
462460
<String, dynamic>{'peerConnectionId': _peerConnectionId});
463461
return RTCRtpReceiverNative.fromMaps(response['receivers'],
464462
peerConnectionId: _peerConnectionId);
@@ -470,7 +468,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
470468
@override
471469
Future<List<RTCRtpTransceiver>> getTransceivers() async {
472470
try {
473-
final response = await _channel.invokeMethod('getTransceivers',
471+
final response = await WebRTC.invokeMethod('getTransceivers',
474472
<String, dynamic>{'peerConnectionId': _peerConnectionId});
475473
return RTCRtpTransceiverNative.fromMaps(response['transceivers'],
476474
peerConnectionId: _peerConnectionId);
@@ -483,8 +481,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
483481
Future<RTCRtpSender> addTrack(MediaStreamTrack track,
484482
[MediaStream? stream]) async {
485483
try {
486-
final response =
487-
await _channel.invokeMethod('addTrack', <String, dynamic>{
484+
final response = await WebRTC.invokeMethod('addTrack', <String, dynamic>{
488485
'peerConnectionId': _peerConnectionId,
489486
'trackId': track.id,
490487
'streamIds': [stream?.id]
@@ -499,7 +496,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
499496
@override
500497
Future<bool> removeTrack(RTCRtpSender sender) async {
501498
try {
502-
final response = await _channel.invokeMethod(
499+
final response = await WebRTC.invokeMethod(
503500
'removeTrack', <String, dynamic>{
504501
'peerConnectionId': _peerConnectionId,
505502
'senderId': sender.senderId
@@ -518,7 +515,7 @@ class RTCPeerConnectionNative extends RTCPeerConnection {
518515
RTCRtpTransceiverInit? init}) async {
519516
try {
520517
final response =
521-
await _channel.invokeMethod('addTransceiver', <String, dynamic>{
518+
await WebRTC.invokeMethod('addTransceiver', <String, dynamic>{
522519
'peerConnectionId': _peerConnectionId,
523520
if (track != null) 'trackId': track.id,
524521
if (kind != null) 'mediaType': typeRTCRtpMediaTypetoString[kind],

lib/src/native/rtc_rtp_receiver_impl.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ class RTCRtpReceiverNative extends RTCRtpReceiver {
3030
@override
3131
Future<List<StatsReport>> getStats() async {
3232
try {
33-
final response = await _channel.invokeMethod<Map<dynamic, dynamic>>(
34-
'getStats', <String, dynamic>{
33+
final response = await WebRTC.invokeMethod('getStats', <String, dynamic>{
3534
'peerConnectionId': _peerConnectionId,
3635
'track': track.id
3736
});
@@ -50,7 +49,6 @@ class RTCRtpReceiverNative extends RTCRtpReceiver {
5049
}
5150

5251
/// private:
53-
final _channel = WebRTC.methodChannel();
5452
String _id;
5553
String _peerConnectionId;
5654
MediaStreamTrack _track;

0 commit comments

Comments
 (0)
0