Release camera/mic when muted, restartTrack when unmuted (#39)

* re-structure tracks

* publication.track is now a LocalTrack or RemoteTrack

* restartTrack when unmute

* stop/start on restartTrack

* move to mute/unmute

* format

* remove comment
This commit is contained in:
Hiroshi Horie
2021-11-30 15:58:19 +07:00
committed by GitHub
parent 9e0a3b19fe
commit 8037d80674
18 changed files with 279 additions and 239 deletions
+13 -4
View File
@@ -43,12 +43,19 @@ class CameraTrackOptions extends LocalVideoTrackOptions {
);
}
class ScreenTrackOptions extends LocalVideoTrackOptions {
const ScreenTrackOptions();
class ScreenShareTrackOptions extends LocalVideoTrackOptions {
const ScreenShareTrackOptions();
}
/// Base class for track options.
abstract class LocalTrackOptions {
const LocalTrackOptions();
// All subclasses must be able to report constraints
Map<String, dynamic> toMediaConstraintsMap();
}
/// Options when creating a LocalVideoTrack.
abstract class LocalVideoTrackOptions {
abstract class LocalVideoTrackOptions extends LocalTrackOptions {
// final LocalVideoTrackType type;
final VideoParameters params;
@@ -56,6 +63,7 @@ abstract class LocalVideoTrackOptions {
this.params = VideoParameters.presetQHD169,
});
@override
Map<String, dynamic> toMediaConstraintsMap() => <String, dynamic>{
'mandatory': params.toMediaConstraintsMap(),
};
@@ -235,7 +243,7 @@ class VideoParameters {
}
/// Options when creating an LocalAudioTrack. Placeholder for now.
class LocalAudioTrackOptions {
class LocalAudioTrackOptions extends LocalTrackOptions {
final bool noiseSuppression;
final bool echoCancellation;
final bool autoGainControl;
@@ -250,6 +258,7 @@ class LocalAudioTrackOptions {
this.typingNoiseDetection = true,
});
@override
Map<String, dynamic> toMediaConstraintsMap() => <String, dynamic>{
'optional': <Map<String, dynamic>>[
<String, dynamic>{'echoCancellation': echoCancellation},