WebRTC Implementing
parent
d9d4720ded
commit
322a32be21
@ -0,0 +1,67 @@
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart';
|
||||
|
||||
class CallPage extends StatefulWidget {
|
||||
@override
|
||||
_CallPageState createState() => _CallPageState();
|
||||
}
|
||||
|
||||
class _CallPageState extends State<CallPage> {
|
||||
final _localRenderer = new RTCVideoRenderer();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
initializeRenderers();
|
||||
_getUserMedia();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_localRenderer.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _getUserMedia() async {
|
||||
final Map<String, dynamic> constraints = {
|
||||
'audio': 'false',
|
||||
'video': {'facingMode': 'user'},
|
||||
};
|
||||
|
||||
MediaStream stream = await navigator.mediaDevices.getUserMedia(constraints);
|
||||
setState(() {
|
||||
_localRenderer.srcObject = stream;
|
||||
});
|
||||
}
|
||||
|
||||
void initializeRenderers() async {
|
||||
_localRenderer.initialize();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
showNewAppBar: true,
|
||||
showNewAppBarTitle: true,
|
||||
isShowDecPage: false,
|
||||
appBarTitle: "WebRTC Calling",
|
||||
body: Container(
|
||||
child: Stack(
|
||||
children: [
|
||||
Positioned(
|
||||
top: 0.0,
|
||||
left: 0.0,
|
||||
right: 0.0,
|
||||
bottom: 0.0,
|
||||
child: Container(
|
||||
child: new RTCVideoView(_localRenderer),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue