WebRtc Event Changes

development_amir
Aamir Muhammad 3 years ago
parent 65c380997e
commit 00abbd8630

@ -11,7 +11,7 @@ class ToDoCountProviderModel with ChangeNotifier {
bool get isShowBadge => _isShowBadge; bool get isShowBadge => _isShowBadge;
void setState(int count, bool isShowBadge, String notifCount) { void setState(int count, bool isShowBadge, String notifCount) {
_count = count; _count = count;
_isShowBadge = isShowBadge; _isShowBadge = isShowBadge;
_notificationsCount = notifCount; _notificationsCount = notifCount;

@ -618,6 +618,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
changeCurrentTab(1); changeCurrentTab(1);
}, },
onLoginClick: () { onLoginClick: () {
login(); login();
}, },
onMedicalFileClick: () { onMedicalFileClick: () {

@ -71,6 +71,7 @@ class Signaling {
Function(dynamic event) onPeersUpdate; Function(dynamic event) onPeersUpdate;
Function(dynamic event) onConnected; Function(dynamic event) onConnected;
Function(dynamic event) onCallAccepted; Function(dynamic event) onCallAccepted;
Function(dynamic event) onCallRejected;
Function(SessionOneToOne session, RTCDataChannel dc, RTCDataChannelMessage data) onDataChannelMessage; Function(SessionOneToOne session, RTCDataChannel dc, RTCDataChannelMessage data) onDataChannelMessage;
Function(SessionOneToOne session, RTCDataChannel dc) onDataChannel; Function(SessionOneToOne session, RTCDataChannel dc) onDataChannel;
@ -131,6 +132,12 @@ class Signaling {
'from': session.local_user.id, 'from': session.local_user.id,
'session_id': session.id, 'session_id': session.id,
}); });
_send('patient_call_accepted', {
'to': session.remote_user?.id,
'from': session.local_user.id,
'session_id': session.id,
});
} }
void offer(String media, bool useScreen) async { void offer(String media, bool useScreen) async {
@ -156,12 +163,11 @@ class Signaling {
'session_id': session.id, 'session_id': session.id,
'to': session.remote_user.id, 'to': session.remote_user.id,
'from': session.local_user.id, 'from': session.local_user.id,
// 'call_rejected' : callRejected
}); });
_closeSession(session); _closeSession(session);
} }
void onMessage(message) async { void onMessage(message) async {
Map<String, dynamic> mapData = message; Map<String, dynamic> mapData = message;
var data = mapData['data']; var data = mapData['data'];
@ -232,7 +238,6 @@ class Signaling {
onCallStateChange?.call(session, CallState.Bye); onCallStateChange?.call(session, CallState.Bye);
} }
break; break;
case 'keepalive': case 'keepalive':
{ {
print('keepalive response!'); print('keepalive response!');

@ -18,14 +18,14 @@ class StartVideoCall extends StatefulWidget {
StartVideoCall({@required this.signaling, @required this.session}); StartVideoCall({@required this.signaling, @required this.session});
@override @override
StartVideoCallState createState() => StartVideoCallState(session: session, signaling: signaling); StartVideoCallState createState() => StartVideoCallState(session: session, signaling: signaling);
} }
class StartVideoCallState extends State<StartVideoCall> { class StartVideoCallState extends State<StartVideoCall> {
Signaling _signaling; Signaling _signaling;
SessionOneToOne _session; SessionOneToOne _session;
StartVideoCallState({@required SessionOneToOne session, @required Signaling signaling}){ StartVideoCallState({@required SessionOneToOne session, @required Signaling signaling}) {
this._session = session; this._session = session;
this._signaling = signaling; this._signaling = signaling;
} }
@ -40,6 +40,7 @@ class StartVideoCallState extends State<StartVideoCall> {
final RTCVideoRenderer _remoteRenderer = RTCVideoRenderer(); final RTCVideoRenderer _remoteRenderer = RTCVideoRenderer();
MediaStream get localMediaStream => _signaling.localStream; MediaStream get localMediaStream => _signaling.localStream;
MediaStream get remoteMediaStream => _signaling.remoteStreams.first; MediaStream get remoteMediaStream => _signaling.remoteStreams.first;
@override @override
@ -100,10 +101,8 @@ class StartVideoCallState extends State<StartVideoCall> {
); );
} }
void _setupEventListeners() async { void _setupEventListeners() async {
if(_session == null) if (_session == null) return;
return;
// _signaling ??= Signaling(widget.host, session: _session)..connect(); // _signaling ??= Signaling(widget.host, session: _session)..connect();
@ -129,14 +128,11 @@ class StartVideoCallState extends State<StartVideoCall> {
_signaling?.callAccepted(_session); _signaling?.callAccepted(_session);
}); });
_signaling?.onCallAccepted = ((event) { _signaling?.onCallAccepted = ((event) {});
});
_signaling?.onLocalStream = ((stream) { _signaling?.onLocalStream = ((stream) {
_localRenderer.srcObject = stream; _localRenderer.srcObject = stream;
setState(() { setState(() {});
});
}); });
_signaling?.onAddRemoteStream = ((_, stream) { _signaling?.onAddRemoteStream = ((_, stream) {
@ -159,14 +155,14 @@ class StartVideoCallState extends State<StartVideoCall> {
// _signaling?.muteMic(); // _signaling?.muteMic();
// } // }
Function _onAudioEnable(){ Function _onAudioEnable() {
print("================= Audio Event Triggered ==================="); print("================= Audio Event Triggered ===================");
final audioTrack = localMediaStream.getAudioTracks()[0]; final audioTrack = localMediaStream.getAudioTracks()[0];
final micEnabled = audioTrack.enabled; final micEnabled = audioTrack.enabled;
localMediaStream.getAudioTracks()[0].enabled = !micEnabled; localMediaStream.getAudioTracks()[0].enabled = !micEnabled;
_audioButton.add(!micEnabled); _audioButton.add(!micEnabled);
// _audioButton.add(!mute); // _audioButton.add(!mute);
// Helper.setMicrophoneMute(!mute, audioTrack); // Helper.setMicrophoneMute(!mute, audioTrack);
} }
Function _onVideoEnabled() { Function _onVideoEnabled() {
@ -183,8 +179,7 @@ class StartVideoCallState extends State<StartVideoCall> {
} }
void _onShowBar() { void _onShowBar() {
setState(() { setState(() {});
});
_onButtonBarVisibleStreamController.add(true); _onButtonBarVisibleStreamController.add(true);
} }
@ -200,11 +195,10 @@ class StartVideoCallState extends State<StartVideoCall> {
} }
Future<void> _onHangup({bool byRemote = false}) async { Future<void> _onHangup({bool byRemote = false}) async {
print("================= HangUp Event Triggered ===================");
print("================= $byRemote ==================="); if (byRemote) {
if(byRemote){
Navigator.of(context).pop(); Navigator.of(context).pop();
}else{ } else {
_signaling.bye(_session); _signaling.bye(_session);
Navigator.of(context).pop(); Navigator.of(context).pop();
} }

Loading…
Cancel
Save