return connection error message, removed mediastream during publishing

This commit is contained in:
David Zhao
2021-08-05 23:20:20 -07:00
parent 101849d0bb
commit 908c830b86
6 changed files with 79 additions and 30 deletions
+1 -15
View File
@@ -13,7 +13,6 @@ import 'participant.dart';
class LocalParticipant extends Participant {
RTCEngine _engine;
MediaStream? _mediaStream;
LocalParticipant({
required RTCEngine engine,
@@ -25,15 +24,6 @@ class LocalParticipant extends Participant {
RTCEngine get engine => _engine;
Future<MediaStream> getMediaStream() async {
var stream = _mediaStream;
if (stream == null) {
stream = await createLocalMediaStream(sid);
_mediaStream = stream;
}
return stream;
}
/// publish an audio track to the room
Future<TrackPublication> publishAudioTrack(LocalAudioTrack track) async {
if (audioTracks.values.any(
@@ -44,10 +34,8 @@ class LocalParticipant extends Participant {
try {
var trackInfo = await _engine.addTrack(
cid: track.getCid(), name: track.name, kind: track.kind);
var stream = await getMediaStream();
var transceiverInit = new RTCRtpTransceiverInit(
direction: TransceiverDirection.SendOnly,
streams: [stream],
);
track.transceiver = await _engine.publisher?.pc.addTransceiver(
track: track.mediaTrack,
@@ -67,7 +55,7 @@ class LocalParticipant extends Participant {
/// publish a video track to the room
Future<TrackPublication> publishVideoTrack(LocalVideoTrack track) async {
if (audioTracks.values.any(
if (videoTracks.values.any(
(element) => element.track?.mediaTrack.id == track.mediaTrack.id)) {
return Future.error(TrackPublishError('track already exists'));
}
@@ -75,10 +63,8 @@ class LocalParticipant extends Participant {
try {
var trackInfo = await _engine.addTrack(
cid: track.getCid(), name: track.name, kind: track.kind);
var stream = await getMediaStream();
var transceiverInit = new RTCRtpTransceiverInit(
direction: TransceiverDirection.SendOnly,
streams: [stream],
);
// TODO: video encodings and simulcast
track.transceiver = await _engine.publisher?.pc.addTransceiver(