Files
client-sdk-flutter/lib/src/options.dart
T
Hiroshi Horie 77dc98601a Option to unpublish without stopping track (#45)
* implement

* rename

* only for local

* keep option

* no per unpublish option to stop track

* format

* format
2021-12-03 11:06:21 +07:00

66 lines
1.8 KiB
Dart

import 'track/options.dart';
/// Options when joining a room.
/// {@category Room}
class ConnectOptions {
/// Auto-subscribe to room tracks upon connect, defaults to true.
final bool autoSubscribe;
/// Default options used when publishing a video track
final VideoPublishOptions defaultVideoPublishOptions;
/// Default options used when publishing a audio track
final AudioPublishOptions defaultAudioPublishOptions;
/// When this is turned on, the following optimizations will be made:
/// - [RemoteTrackPublication] will be enabled/disabled based on the corresponding
/// [VideoTrackRenderer]'s visibility on screen.
/// - Re-sizing a [VideoTrackRenderer] will signal the server to send down
/// a relavant quality layer (if simulcast is enabled on the publisher)
/// defaults to true.
final bool optimizeVideo;
/// Set this to false in case you would like to stop the track yourself.
/// defaults to true.
final bool stopLocalTrackOnUnpublish;
const ConnectOptions({
this.autoSubscribe = true,
this.defaultVideoPublishOptions = const VideoPublishOptions(),
this.defaultAudioPublishOptions = const AudioPublishOptions(),
this.optimizeVideo = true,
this.stopLocalTrackOnUnpublish = true,
});
}
class VideoPublishOptions {
///
final VideoEncoding? videoEncoding;
///
final bool simulcast;
const VideoPublishOptions({
this.videoEncoding,
this.simulcast = true,
});
@override
String toString() =>
'${runtimeType}(videoEncoding: ${videoEncoding}, simulcast: ${simulcast})';
}
class AudioPublishOptions {
/// DTX (Discontinuous Transmission)
/// https://en.wikipedia.org/wiki/Discontinuous_transmission
/// defaults to true
final bool dtx;
const AudioPublishOptions({
this.dtx = true,
});
@override
String toString() => '${runtimeType}(dtx: ${dtx})';
}