8000 Rtcdtmfsender initilized in rtc_peerconnection.dart and added dtmfsen… · next-coder/flutter-webrtc@b637a16 · GitHub
[go: up one dir, main page]

Skip to content

Commit b637a16

Browse files
committed
Rtcdtmfsender initilized in rtc_peerconnection.dart and added dtmfsender getter
1 parent cdf0ea7 commit b637a16

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

lib/src/rtc_dtmf_sender.dart

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import 'package:flutter/services.dart';
44

55
class RTCDTMFSender {
66
// peer connection Id must be defined as a variable where this function will be called.
7+
final String _peerConnectionId;
78

8-
static Future<void> sendDtmf(String peerConnectionId, String tone,
9-
{double duration, double gap}) async {
9+
RTCDTMFSender(this._peerConnectionId);
10+
11+
Future<void> sendDtmf(String tone, {var duration, var gap}) async {
1012
final MethodChannel _channel = WebRTC.methodChannel();
1113

12-
double _duration = 0.0;
13-
double _gap = 0.0;
14+
var _duration = Platform.isIOS ? 0.5 : 500;
15+
var _gap = Platform.isIOS ? 0.05 : 50;
1416
// IOS accepts gap and duration in seconds so conversion to be needed
1517
if (duration != null) {
1618
if (Platform.isIOS) {
@@ -19,6 +21,7 @@ class RTCDTMFSender {
1921
_duration = duration;
2022
}
2123
}
24+
2225
if (gap != null) {
2326
if (Platform.isIOS) {
2427
_gap = gap / 1000;
@@ -28,7 +31,7 @@ class RTCDTMFSender {
2831
}
2932

3033
await _channel.invokeMethod('sendDtmf', <String, dynamic>{
31-
'peerConnectionId': peerConnectionId,
34+
'peerConnectionId': _peerConnectionId,
3235
'tone': tone,
3336
'duration': _duration,
3437
'gap': _gap,

lib/src/rtc_peerconnection.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'enums.dart';
66
import 'media_stream.dart';
77
import 'media_stream_track.dart';
88
import 'rtc_data_channel.dart';
9+
import 'rtc_dtmf_sender.dart';
910
import 'rtc_ice_candidate.dart';
1011
import 'rtc_session_description.dart';
1112
import 'rtc_stats_report.dart';
@@ -34,6 +35,8 @@ class RTCPeerConnection {
3435
_eventSubscription = _eventChannelFor(_peerConnectionId)
3536
.receiveBroadcastStream()
3637
.listen(eventListener, onError: errorListener);
38+
39+
_dtmfSender = RTCDTMFSender(_peerConnectionId);
3740
}
3841

3942
// private:
@@ -47,7 +50,7 @@ class RTCPeerConnection {
4750
RTCSignalingState _signalingState;
4851
RTCIceGatheringState _iceGatheringState;
4952
RTCIceConnectionState _iceConnectionState;
50-
53+
RTCDTMFSender _dtmfSender;
5154
// public: delegate
5255
SignalingStateCallback onSignalingState;
5356
IceGatheringStateCallback onIceGatheringState;
@@ -58,6 +61,7 @@ class RTCPeerConnection {
5861
AddTrackCallback onAddTrack;
5962
RemoveTrackCallback onRemoveTrack;
6063
RTCDataChannelCallback onDataChannel;
64+
6165
dynamic onRenegotiationNeeded;
6266

6367
final Map<String, dynamic> defaultSdpConstraints = {
@@ -74,7 +78,7 @@ class RTCPeerConnection {
7478

7579
RTCIceConnectionState get iceConnectionState => _iceConnectionState;
7680

77-
String get peerConnectionId => _peerConnectionId;
81+
RTCDTMFSender get dtmfSender => _dtmfSender;
7882

7983
/*
8084
* PeerConnection event listener.

0 commit comments

Comments
 (0)
0