@@ -4,56 +4,42 @@ import 'media_stream_track.dart';
4
4
import 'utils.dart' ;
5
5
6
6
class MediaStream {
7
- MethodChannel _channel = WebRTC .methodChannel ();
8
- String _streamId;
9
- String _ownerTag;
10
- List <MediaStreamTrack > _audioTracks = new List <MediaStreamTrack >();
11
- List <MediaStreamTrack > _videoTracks = new List <MediaStreamTrack >();
7
+ final MethodChannel _channel = WebRTC .methodChannel ();
8
+ final String _streamId;
9
+ final String _ownerTag;
10
+ List <MediaStreamTrack > _audioTracks = List <MediaStreamTrack >();
11
+ List <MediaStreamTrack > _videoTracks = List <MediaStreamTrack >();
12
+
12
13
MediaStream (this ._streamId, this ._ownerTag);
14
+
13
15
String get ownerTag => _ownerTag;
16
+ String get id => _streamId;
14
17
15
18
void setMediaTracks (List <dynamic > audioTracks, List <dynamic > videoTracks) {
16
- List < MediaStreamTrack > newAudioTracks = new List ();
19
+ var newAudioTracks = List < MediaStreamTrack > ();
17
20
audioTracks.forEach ((track) {
18
- newAudioTracks.add (new MediaStreamTrack (
21
+ newAudioTracks.add (MediaStreamTrack (
19
22
track["id" ], track["label" ], track["kind" ], track["enabled" ]));
20
23
});
21
- _audioTracks = newAudioTracks;
24
+ this . _audioTracks = newAudioTracks;
22
25
23
- List < MediaStreamTrack > newVideoTracks = new List ();
26
+ var newVideoTracks = List < MediaStreamTrack > ();
24
27
videoTracks.forEach ((track) {
25
- newVideoTracks.add (new MediaStreamTrack (
28
+ newVideoTracks.add (MediaStreamTrack (
26
29
track["id" ], track["label" ], track["kind" ], track["enabled" ]));
27
30
});
28
- _videoTracks = newVideoTracks;
31
+ this . _videoTracks = newVideoTracks;
29
32
}
30
33
31
34
Future <void > getMediaTracks () async {
32
- _channel = WebRTC .methodChannel ();
33
35
final Map <dynamic , dynamic > response = await _channel.invokeMethod (
34
36
'mediaStreamGetTracks' ,
35
37
< String , dynamic > {'streamId' : _streamId},
36
38
);
37
39
38
- List <dynamic > audioTracks = response['audioTracks' ];
39
-
40
- List <MediaStreamTrack > newAudioTracks = new List ();
41
- audioTracks.forEach ((track) {
42
- newAudioTracks.add (new MediaStreamTrack (
43
- track["id" ], track["label" ], track["kind" ], track["enabled" ]));
44
- });
45
- _audioTracks = newAudioTracks;
46
-
47
- List <MediaStreamTrack > newVideoTracks = new List ();
48
- List <dynamic > videoTracks = response['videoTracks' ];
49
- videoTracks.forEach ((track) {
50
- newVideoTracks.add (new MediaStreamTrack (
51
- track["id" ], track["label" ], track["kind" ], track["enabled"]));
52
- });
53
- _videoTracks = newVideoTracks;
40
+ setMediaTracks (response['audioTracks' ], response['videoTracks' ]);
54
41
}
55
42
56
- String get id => _streamId;
57
43
Future <void > addTrack (MediaStreamTrack track,
58
44
{bool addToNative = true }) async {
59
45
if (track.kind == 'audio' )
0 commit comments