video rendering, local track creation

This commit is contained in:
David Zhao
2021-08-03 10:25:00 -07:00
parent d193b9fb7f
commit aec2003140
12 changed files with 184 additions and 19 deletions
+26 -2
View File
@@ -1,8 +1,32 @@
import 'package:flutter_webrtc/flutter_webrtc.dart';
import '../errors.dart';
import 'options.dart';
import 'video_track.dart';
class LocalVideoTrack extends VideoTrack {
LocalVideoTrack(String name, MediaStreamTrack mediaTrack)
: super(name, mediaTrack);
LocalVideoTrack(String name, MediaStreamTrack mediaTrack, MediaStream stream)
: super(name, mediaTrack, stream);
Future<LocalVideoTrack> createCameraTrack(
LocalVideoTrackOptions? options) async {
if (options == null) {
options = LocalVideoTrackOptions(params: VideoPresets.qhd);
}
try {
var stream = await navigator.mediaDevices.getUserMedia({
"audio": false,
"video": options.mediaConstraints,
});
if (stream.getVideoTracks().length == 0) {
return Future.error(TrackCreateError());
}
return LocalVideoTrack("", stream.getVideoTracks().first, stream);
} catch (e) {
return Future.error(e);
}
}
}