@@ -129,7 +129,36 @@ public void onMethodCall(MethodCall call, Result result) {
129
129
} else if (call .method .equals ("mediaStreamGetTracks" )) {
130
130
String streamId = call .argument ("streamId" );
131
131
MediaStream stream = getStreamForId (streamId );
132
- //TODO: build tracks map.
132
+ String streamId = call .argument ("streamId" );
133
+ MediaStream stream = getStreamForId (streamId );
134
+ Map <String , Object > resultMap = new HashMap <>();
135
+ List <Object > audioTracks = new ArrayList <>();
136
+ List <Object > videoTracks = new ArrayList <>();
137
+ for (AudioTrack track : stream .audioTracks ) {
138
+ localTracks .put (track .id (), track );
139
+ Map <String , Object > trackMap = new HashMap <>();
140
+ trackMap .put ("enabled" , track .enabled ());
141
+ trackMap .put ("id" , track .id ());
142
+ trackMap .put ("kind" , track .kind ());
143
+ trackMap .put ("label" , track .id ());
144
+ trackMap .put ("readyState" , "live" );
145
+ trackMap .put ("remote" , false );
146
+ audioTracks .add (trackMap );
147
+ }
148
+ for (VideoTrack track : stream .videoTracks ) {
149
+ localTracks .put (track .id (), track );
150
+ Map <String , Object > trackMap = new HashMap <>();
151
+ trackMap .put ("enabled" , track .enabled ());
152
+ trackMap .put ("id" , track .id ());
153
+ trackMap .put ("kind" , track .kind ());
154
+ trackMap .put ("label" , track .id ());
155
+ trackMap .put ("readyState" , "live" );
156
+ trackMap .put ("remote" , false );
157
+ videoTracks .add (trackMap );
158
+ }
159
+ resultMap .put ("audioTracks" , audioTracks );
160
+ resultMap .put ("videoTracks" , videoTracks );
161
+ result .success (resultMap );
133
162
} else if (call .method .equals ("addStream" )) {
134
163
String streamId = call .argument ("streamId" );
135
164
String peerConnectionId = call .argument ("peerConnectionId" );
0 commit comments