implemented tracks, local & remote participants
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
import 'package:flutter_webrtc/flutter_webrtc.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
import '../proto/livekit_models.pb.dart';
|
||||
|
||||
class TrackDimension {
|
||||
int width;
|
||||
int height;
|
||||
@@ -6,5 +11,41 @@ class TrackDimension {
|
||||
}
|
||||
|
||||
class Track {
|
||||
String name;
|
||||
TrackType kind;
|
||||
MediaStreamTrack mediaTrack;
|
||||
String? sid;
|
||||
RTCRtpTransceiver? transceiver;
|
||||
String? _cid;
|
||||
|
||||
Track(this.kind, this.name, this.mediaTrack);
|
||||
|
||||
RTCRtpMediaType get mediaType {
|
||||
switch (kind) {
|
||||
case TrackType.AUDIO:
|
||||
return RTCRtpMediaType.RTCRtpMediaTypeAudio;
|
||||
case TrackType.VIDEO:
|
||||
return RTCRtpMediaType.RTCRtpMediaTypeVideo;
|
||||
// this should never happen
|
||||
default:
|
||||
return RTCRtpMediaType.RTCRtpMediaTypeAudio;
|
||||
}
|
||||
}
|
||||
|
||||
String getCid() {
|
||||
var cid = _cid;
|
||||
if (cid == null) {
|
||||
cid = mediaTrack.id;
|
||||
}
|
||||
if (cid == null) {
|
||||
var uuid = Uuid();
|
||||
cid = uuid.v4();
|
||||
_cid = cid;
|
||||
}
|
||||
return cid;
|
||||
}
|
||||
|
||||
stop() {
|
||||
mediaTrack.stop();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user