organize dirs
This commit is contained in:
+10
-10
@@ -1,27 +1,27 @@
|
||||
/// Flutter Client SDK to LiveKit.
|
||||
library livekit_client;
|
||||
|
||||
export 'src/core/room.dart';
|
||||
export 'src/events.dart';
|
||||
export 'src/exceptions.dart';
|
||||
export 'src/livekit.dart';
|
||||
export 'src/managers/event.dart';
|
||||
export 'src/options.dart';
|
||||
export 'src/participant/local_participant.dart';
|
||||
export 'src/participant/local_participant.dart';
|
||||
export 'src/participant/local.dart';
|
||||
export 'src/participant/local.dart';
|
||||
export 'src/participant/participant.dart';
|
||||
export 'src/participant/remote_participant.dart';
|
||||
export 'src/participant/remote.dart';
|
||||
export 'src/proto/livekit_models.pb.dart' show TrackType, VideoQuality;
|
||||
export 'src/publication/local_track_publication.dart';
|
||||
export 'src/publication/remote_track_publication.dart';
|
||||
export 'src/publication/local.dart';
|
||||
export 'src/publication/remote.dart';
|
||||
export 'src/publication/track_publication.dart';
|
||||
export 'src/room.dart';
|
||||
export 'src/track/local.dart';
|
||||
export 'src/track/local/audio.dart';
|
||||
export 'src/track/local/local.dart';
|
||||
export 'src/track/local/video.dart';
|
||||
export 'src/track/remote.dart';
|
||||
export 'src/track/remote/audio.dart';
|
||||
export 'src/track/remote/video.dart';
|
||||
export 'src/track/options.dart';
|
||||
export 'src/track/remote/audio.dart';
|
||||
export 'src/track/remote/remote.dart';
|
||||
export 'src/track/remote/video.dart';
|
||||
export 'src/track/track.dart';
|
||||
export 'src/types.dart';
|
||||
export 'src/widget/video_track_renderer.dart';
|
||||
|
||||
@@ -6,24 +6,24 @@ import 'package:collection/collection.dart';
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import 'constants.dart';
|
||||
import 'events.dart';
|
||||
import 'exceptions.dart';
|
||||
import 'extensions.dart';
|
||||
import 'internal/events.dart';
|
||||
import 'logger.dart';
|
||||
import 'managers/delay.dart';
|
||||
import 'managers/event.dart';
|
||||
import 'options.dart';
|
||||
import 'proto/livekit_models.pb.dart' as lk_models;
|
||||
import 'proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import '../constants.dart';
|
||||
import '../events.dart';
|
||||
import '../exceptions.dart';
|
||||
import '../extensions.dart';
|
||||
import '../internal/events.dart';
|
||||
import '../logger.dart';
|
||||
import '../managers/delay.dart';
|
||||
import '../managers/event.dart';
|
||||
import '../options.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import '../support/disposable.dart';
|
||||
import '../types.dart';
|
||||
import 'room.dart';
|
||||
import 'signal_client.dart';
|
||||
import 'support/disposable.dart';
|
||||
import 'transport.dart';
|
||||
import 'types.dart';
|
||||
|
||||
class RTCEngine extends Disposable with EventsEmittable<EngineEvent> {
|
||||
class Engine extends Disposable with EventsEmittable<EngineEvent> {
|
||||
static const _lossyDCLabel = '_lossy';
|
||||
static const _reliableDCLabel = '_reliable';
|
||||
static const _maxReconnectAttempts = 5;
|
||||
@@ -80,7 +80,7 @@ class RTCEngine extends Disposable with EventsEmittable<EngineEvent> {
|
||||
|
||||
final delays = CancelableDelayManager();
|
||||
|
||||
RTCEngine({
|
||||
Engine({
|
||||
required this.room,
|
||||
SignalClient? signalClient,
|
||||
}) : signalClient = signalClient ?? SignalClient() {
|
||||
@@ -2,23 +2,23 @@ import 'dart:collection';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
import 'constants.dart';
|
||||
import 'events.dart';
|
||||
import 'exceptions.dart';
|
||||
import 'extensions.dart';
|
||||
import 'internal/events.dart';
|
||||
import 'logger.dart';
|
||||
import 'managers/event.dart';
|
||||
import 'options.dart';
|
||||
import 'participant/local_participant.dart';
|
||||
import 'participant/participant.dart';
|
||||
import 'participant/remote_participant.dart';
|
||||
import 'proto/livekit_models.pb.dart' as lk_models;
|
||||
import 'proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import 'rtc_engine.dart';
|
||||
import 'support/disposable.dart';
|
||||
import 'track/track.dart';
|
||||
import 'types.dart';
|
||||
import '../constants.dart';
|
||||
import '../events.dart';
|
||||
import '../exceptions.dart';
|
||||
import '../extensions.dart';
|
||||
import '../internal/events.dart';
|
||||
import '../logger.dart';
|
||||
import '../managers/event.dart';
|
||||
import '../options.dart';
|
||||
import '../participant/local.dart';
|
||||
import '../participant/participant.dart';
|
||||
import '../participant/remote.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import '../support/disposable.dart';
|
||||
import '../track/track.dart';
|
||||
import '../types.dart';
|
||||
import 'engine.dart';
|
||||
|
||||
/// Room is the primary construct for LiveKit conferences. It contains a
|
||||
/// group of [Participant]s, each publishing and subscribing to [Track]s.
|
||||
@@ -61,7 +61,7 @@ class Room extends DisposableChangeNotifier with EventsEmittable<RoomEvent> {
|
||||
UnmodifiableListView<Participant> get activeSpeakers =>
|
||||
UnmodifiableListView<Participant>(_activeSpeakers);
|
||||
|
||||
late final engine = RTCEngine(room: this);
|
||||
late final engine = Engine(room: this);
|
||||
|
||||
// suppport for multiple event listeners
|
||||
late final _engineListener = engine.createListener();
|
||||
@@ -3,19 +3,19 @@ import 'dart:async';
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'events.dart';
|
||||
import 'exceptions.dart';
|
||||
import 'extensions.dart';
|
||||
import 'internal/events.dart';
|
||||
import 'logger.dart';
|
||||
import 'managers/event.dart';
|
||||
import 'options.dart';
|
||||
import 'proto/livekit_models.pb.dart' as lk_models;
|
||||
import 'proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import 'support/disposable.dart';
|
||||
import 'support/websocket.dart';
|
||||
import 'types.dart';
|
||||
import 'utils.dart';
|
||||
import '../events.dart';
|
||||
import '../exceptions.dart';
|
||||
import '../extensions.dart';
|
||||
import '../internal/events.dart';
|
||||
import '../logger.dart';
|
||||
import '../managers/event.dart';
|
||||
import '../options.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import '../support/disposable.dart';
|
||||
import '../support/websocket.dart';
|
||||
import '../types.dart';
|
||||
import '../utils.dart';
|
||||
|
||||
class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
|
||||
//
|
||||
@@ -2,12 +2,12 @@ import 'dart:async';
|
||||
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
|
||||
import 'constants.dart';
|
||||
import 'extensions.dart';
|
||||
import 'logger.dart';
|
||||
import 'support/disposable.dart';
|
||||
import 'types.dart';
|
||||
import 'utils.dart';
|
||||
import '../constants.dart';
|
||||
import '../extensions.dart';
|
||||
import '../logger.dart';
|
||||
import '../support/disposable.dart';
|
||||
import '../types.dart';
|
||||
import '../utils.dart';
|
||||
|
||||
typedef PCTransportOnOffer = void Function(rtc.RTCSessionDescription offer);
|
||||
|
||||
+8
-8
@@ -1,12 +1,12 @@
|
||||
import 'participant/local_participant.dart';
|
||||
import 'core/engine.dart';
|
||||
import 'core/room.dart';
|
||||
import 'core/signal_client.dart';
|
||||
import 'participant/local.dart';
|
||||
import 'participant/participant.dart';
|
||||
import 'participant/remote_participant.dart';
|
||||
import 'publication/local_track_publication.dart';
|
||||
import 'publication/remote_track_publication.dart';
|
||||
import 'participant/remote.dart';
|
||||
import 'publication/local.dart';
|
||||
import 'publication/remote.dart';
|
||||
import 'publication/track_publication.dart';
|
||||
import 'room.dart';
|
||||
import 'rtc_engine.dart';
|
||||
import 'signal_client.dart';
|
||||
import 'track/track.dart';
|
||||
import 'types.dart';
|
||||
|
||||
@@ -22,7 +22,7 @@ abstract class ParticipantEvent implements LiveKitEvent {}
|
||||
/// Base type for all [Track] events.
|
||||
abstract class TrackEvent implements LiveKitEvent {}
|
||||
|
||||
/// Base type for all [RTCEngine] events.
|
||||
/// Base type for all [Engine] events.
|
||||
abstract class EngineEvent implements LiveKitEvent {}
|
||||
|
||||
/// Base type for all [SignalClient] events.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'core/room.dart';
|
||||
import 'options.dart';
|
||||
import 'room.dart';
|
||||
|
||||
/// Main entry point to connect to a room.
|
||||
/// {@category Room}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'core/room.dart';
|
||||
import 'publication/remote.dart';
|
||||
import 'track/local/audio.dart';
|
||||
import 'track/local/video.dart';
|
||||
import 'track/options.dart';
|
||||
import 'track/track.dart';
|
||||
import 'publication/remote_track_publication.dart';
|
||||
import 'types.dart';
|
||||
import 'room.dart';
|
||||
|
||||
/// Options used when connecting to the server.
|
||||
class ConnectOptions {
|
||||
|
||||
@@ -3,16 +3,16 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import '../core/room.dart';
|
||||
import '../events.dart';
|
||||
import '../exceptions.dart';
|
||||
import '../extensions.dart';
|
||||
import '../logger.dart';
|
||||
import '../options.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../publication/local_track_publication.dart';
|
||||
import '../room.dart';
|
||||
import '../track/local.dart';
|
||||
import '../publication/local.dart';
|
||||
import '../track/local/audio.dart';
|
||||
import '../track/local/local.dart';
|
||||
import '../track/local/video.dart';
|
||||
import '../types.dart';
|
||||
import '../utils.dart';
|
||||
@@ -1,19 +1,19 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import '../core/room.dart';
|
||||
import '../events.dart';
|
||||
import '../extensions.dart';
|
||||
import '../logger.dart';
|
||||
import '../managers/event.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../publication/track_publication.dart';
|
||||
import '../room.dart';
|
||||
import '../support/disposable.dart';
|
||||
import '../track/local/local.dart';
|
||||
import '../track/track.dart';
|
||||
import '../track/local.dart';
|
||||
import '../types.dart';
|
||||
import 'remote_participant.dart';
|
||||
import 'local_participant.dart';
|
||||
import 'local.dart';
|
||||
import 'remote.dart';
|
||||
|
||||
/// Represents a Participant in the room, notifies changes via delegates as
|
||||
/// well as ChangeNotifier/providers.
|
||||
|
||||
@@ -2,15 +2,15 @@ import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import '../constants.dart';
|
||||
import '../core/room.dart';
|
||||
import '../events.dart';
|
||||
import '../exceptions.dart';
|
||||
import '../extensions.dart';
|
||||
import '../logger.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../publication/remote_track_publication.dart';
|
||||
import '../room.dart';
|
||||
import '../track/remote.dart';
|
||||
import '../publication/remote.dart';
|
||||
import '../track/remote/audio.dart';
|
||||
import '../track/remote/remote.dart';
|
||||
import '../track/remote/video.dart';
|
||||
import '../types.dart';
|
||||
import 'participant.dart';
|
||||
@@ -6,7 +6,9 @@
|
||||
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
|
||||
|
||||
// ignore_for_file: UNDEFINED_SHOWN_NAME
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class TrackType extends $pb.ProtobufEnum {
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// @dart = 2.12
|
||||
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
|
||||
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use trackTypeDescriptor instead')
|
||||
|
||||
@@ -10,7 +10,6 @@ import 'dart:core' as $core;
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
import 'livekit_models.pb.dart' as $0;
|
||||
|
||||
import 'livekit_models.pbenum.dart' as $0;
|
||||
import 'livekit_rtc.pbenum.dart';
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
|
||||
|
||||
// ignore_for_file: UNDEFINED_SHOWN_NAME
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class SignalTarget extends $pb.ProtobufEnum {
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// @dart = 2.12
|
||||
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name
|
||||
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use signalTargetDescriptor instead')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import '../participant/local_participant.dart';
|
||||
import '../participant/local.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../track/local.dart';
|
||||
import '../track/local/local.dart';
|
||||
import 'track_publication.dart';
|
||||
|
||||
class LocalTrackPublication<T extends LocalTrack> extends TrackPublication<T> {
|
||||
@@ -9,10 +9,10 @@ import '../extensions.dart';
|
||||
import '../internal/events.dart';
|
||||
import '../logger.dart';
|
||||
import '../options.dart';
|
||||
import '../participant/remote_participant.dart';
|
||||
import '../participant/remote.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../proto/livekit_rtc.pb.dart' as lk_rtc;
|
||||
import '../track/remote.dart';
|
||||
import '../track/remote/remote.dart';
|
||||
import '../types.dart';
|
||||
import '../utils.dart';
|
||||
import 'track_publication.dart';
|
||||
@@ -1,8 +1,8 @@
|
||||
import '../events.dart';
|
||||
import '../internal/events.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import '../events.dart';
|
||||
import '../extensions.dart';
|
||||
import '../internal/events.dart';
|
||||
import '../logger.dart';
|
||||
import '../participant/participant.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import '../platform.dart';
|
||||
import 'dart:io';
|
||||
|
||||
import '../platform.dart';
|
||||
|
||||
PlatformType lkPlatformImplementation() {
|
||||
if (Platform.isWindows) return PlatformType.windows;
|
||||
if (Platform.isFuchsia) return PlatformType.fuchsia;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import '../support/platform.dart';
|
||||
|
||||
import 'package:synchronized/synchronized.dart' as sync;
|
||||
|
||||
import '../logger.dart';
|
||||
import '../support/native_audio.dart';
|
||||
import 'local.dart';
|
||||
import '../support/platform.dart';
|
||||
import 'local/audio.dart';
|
||||
import 'local/local.dart';
|
||||
|
||||
enum AudioTrackState {
|
||||
none,
|
||||
|
||||
@@ -5,8 +5,8 @@ import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../../types.dart';
|
||||
import '../audio_management.dart';
|
||||
import '../local.dart';
|
||||
import '../options.dart';
|
||||
import 'local.dart';
|
||||
|
||||
class LocalAudioTrack extends LocalTrack with AudioTrack, AudioManagementMixin {
|
||||
// Options used for this track
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import '../support/platform.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import '../exceptions.dart';
|
||||
import '../logger.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../types.dart';
|
||||
import 'options.dart';
|
||||
import 'track.dart';
|
||||
import '../track/local/audio.dart';
|
||||
import '../track/local/video.dart';
|
||||
import '../track/remote/audio.dart';
|
||||
import '../track/remote/video.dart';
|
||||
import '../events.dart';
|
||||
import '../participant/remote_participant.dart';
|
||||
import '../../events.dart';
|
||||
import '../../exceptions.dart';
|
||||
import '../../logger.dart';
|
||||
import '../../participant/remote.dart';
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../../support/platform.dart';
|
||||
import '../../types.dart';
|
||||
import '../options.dart';
|
||||
import '../remote/audio.dart';
|
||||
import '../remote/video.dart';
|
||||
import '../track.dart';
|
||||
import 'audio.dart';
|
||||
import 'video.dart';
|
||||
|
||||
/// Used to group [LocalVideoTrack] and [RemoteVideoTrack].
|
||||
mixin VideoTrack on Track {}
|
||||
@@ -3,9 +3,9 @@ import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import '../../logger.dart';
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../../types.dart';
|
||||
import '../local.dart';
|
||||
import '../options.dart';
|
||||
import '../track.dart';
|
||||
import 'local.dart';
|
||||
|
||||
/// A video track from the local device. Use static methods in this class to create
|
||||
/// video tracks.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import '../track/local/video.dart';
|
||||
|
||||
import '../track/local/audio.dart';
|
||||
import '../track/local/video.dart';
|
||||
import '../types.dart';
|
||||
|
||||
/// A type that represents front or back of the camera.
|
||||
|
||||
@@ -3,8 +3,8 @@ import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../../types.dart';
|
||||
import '../audio_management.dart';
|
||||
import '../local.dart';
|
||||
import '../remote.dart';
|
||||
import '../local/local.dart';
|
||||
import 'remote.dart';
|
||||
|
||||
import '../web/_audio_api.dart' if (dart.library.html) '../web/_audio_html.dart'
|
||||
as audio;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../types.dart';
|
||||
import 'track.dart';
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../../types.dart';
|
||||
import '../track.dart';
|
||||
|
||||
abstract class RemoteTrack extends Track {
|
||||
RemoteTrack(
|
||||
@@ -2,8 +2,8 @@ import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../../types.dart';
|
||||
import '../local.dart';
|
||||
import '../remote.dart';
|
||||
import '../local/local.dart';
|
||||
import 'remote.dart';
|
||||
|
||||
class RemoteVideoTrack extends RemoteTrack with VideoTrack {
|
||||
//
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// ignore: avoid_web_libraries_in_flutter
|
||||
|
||||
import 'dart:html' as html;
|
||||
|
||||
// ignore: implementation_imports
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'extensions.dart';
|
||||
import 'dart:math' as math;
|
||||
|
||||
typedef CancelListenFunc = Function();
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
|
||||
import './proto/livekit_models.pb.dart' as lk_models;
|
||||
import 'extensions.dart';
|
||||
|
||||
@@ -8,7 +8,7 @@ import '../extensions.dart';
|
||||
import '../internal/events.dart';
|
||||
import '../logger.dart';
|
||||
import '../managers/event.dart';
|
||||
import '../track/local.dart';
|
||||
import '../track/local/local.dart';
|
||||
import '../track/local/video.dart';
|
||||
|
||||
/// Widget that renders a [VideoTrack].
|
||||
|
||||
Reference in New Issue
Block a user