Files
client-sdk-flutter/lib/src/options.dart
T
2021-10-28 02:57:15 +09:00

61 lines
1.6 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;
const ConnectOptions({
this.autoSubscribe = true,
this.defaultVideoPublishOptions = const VideoPublishOptions(),
this.defaultAudioPublishOptions = const AudioPublishOptions(),
this.optimizeVideo = true,
});
}
class VideoPublishOptions {
///
final VideoEncoding? videoEncoding;
///
final bool simulcast;
const VideoPublishOptions({
this.videoEncoding,
this.simulcast = false,
});
@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})';
}