simplewebrtc_flutter_webrtc_shim 0.2.11 simplewebrtc_flutter_webrtc_shim: ^0.2.11 copied to clipboard
Flutter WebRTC plugin for iOS/Android.
import 'dart:core';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart'
show debugDefaultTargetPlatformOverride;
import 'package:simplewebrtc_flutter_webrtc_shim/webrtc.dart';
import 'src/loopback_sample.dart';
import 'src/get_user_media_sample.dart'
if (dart.library.js) 'src/get_user_media_sample_web.dart';
import 'src/get_display_media_sample.dart';
import 'src/data_channel_sample.dart';
import 'src/route_item.dart';
void main() {
if (WebRTC.platformIsDesktop)
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
runApp(new MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<RouteItem> items;
@override
initState() {
super.initState();
_initItems();
}
_buildRow(context, item) {
return ListBody(children: <Widget>[
ListTile(
title: Text(item.title),
onTap: () => item.push(context),
trailing: Icon(Icons.arrow_right),
),
Divider()
]);
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: new Text('Flutter-WebRTC example'),
),
body: new ListView.builder(
shrinkWrap: true,
padding: const EdgeInsets.all(0.0),
itemCount: items.length,
itemBuilder: (context, i) {
return _buildRow(context, items[i]);
})),
);
}
_initItems() {
items = <RouteItem>[
RouteItem(
title: 'GetUserMedia',
push: (BuildContext context) {
Navigator.push(
context,
new MaterialPageRoute(
builder: (BuildContext context) =>
new GetUserMediaSample()));
}),
RouteItem(
title: 'GetDisplayMedia',
push: (BuildContext context) {
Navigator.push(
context,
new MaterialPageRoute(
builder: (BuildContext context) =>
new GetDisplayMediaSample()));
}),
RouteItem(
title: 'LoopBack Sample',
push: (BuildContext context) {
Navigator.push(
context,
new MaterialPageRoute(
builder: (BuildContext context) => new LoopBackSample()));
}),
RouteItem(
title: 'DataChannel',
push: (BuildContext context) {
Navigator.push(
context,
new MaterialPageRoute(
builder: (BuildContext context) =>
new DataChannelSample()));
}),
];
}
}