@@ -8,7 +8,8 @@ import '../audio_management.dart';
|
||||
import '../options.dart';
|
||||
import 'local.dart';
|
||||
|
||||
class LocalAudioTrack extends LocalTrack with AudioTrack, AudioManagementMixin {
|
||||
class LocalAudioTrack extends LocalTrack
|
||||
with AudioTrack, LocalAudioManagementMixin {
|
||||
// Options used for this track
|
||||
@override
|
||||
covariant AudioCaptureOptions currentOptions;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import '../../events.dart';
|
||||
import '../../exceptions.dart';
|
||||
import '../../extensions.dart';
|
||||
import '../../logger.dart';
|
||||
import '../../participant/remote.dart';
|
||||
import '../../proto/livekit_models.pb.dart' as lk_models;
|
||||
@@ -46,6 +46,9 @@ abstract class LocalTrack extends Track {
|
||||
/// Options used for this track
|
||||
abstract LocalTrackOptions currentOptions;
|
||||
|
||||
bool _published = false;
|
||||
bool get isPublished => _published;
|
||||
|
||||
LocalTrack(
|
||||
String name,
|
||||
lk_models.TrackType kind,
|
||||
@@ -170,4 +173,32 @@ abstract class LocalTrack extends Track {
|
||||
// mark as started
|
||||
await start();
|
||||
}
|
||||
|
||||
@internal
|
||||
@mustCallSuper
|
||||
Future<bool> onPublish() async {
|
||||
if (_published) {
|
||||
// already published
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.fine('$objectId.publish()');
|
||||
|
||||
_published = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@internal
|
||||
@mustCallSuper
|
||||
Future<bool> onUnpublish() async {
|
||||
if (!_published) {
|
||||
// already unpublished
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.fine('$objectId.unpublish()');
|
||||
|
||||
_published = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user