|
111 | 111 | public class MethodCallHandlerImpl implements MethodCallHandler, StateProvider { |
112 | 112 | static public final String TAG = "FlutterWebRTCPlugin"; |
113 | 113 |
|
114 | | - private final Map<String, PeerConnectionObserver> mPeerConnectionObservers = new HashMap<>(); |
| 114 | + private final ConcurrentHashMap<String, PeerConnectionObserver> mPeerConnectionObservers = new ConcurrentHashMap<>(); |
115 | 115 | private final BinaryMessenger messenger; |
116 | 116 | private final Context context; |
117 | 117 | private final TextureRegistry textures; |
118 | 118 | private PeerConnectionFactory mFactory; |
119 | | - private final Map<String, MediaStream> localStreams = new HashMap<>(); |
120 | | - private final Map<String, LocalTrack> localTracks = new HashMap<>(); |
| 119 | + private final ConcurrentHashMap<String, MediaStream> localStreams = new ConcurrentHashMap<>(); |
| 120 | + private final ConcurrentHashMap<String, LocalTrack> localTracks = new ConcurrentHashMap<>(); |
121 | 121 | private final LongSparseArray<FlutterRTCVideoRenderer> renders = new LongSparseArray<>(); |
122 | 122 |
|
123 | 123 | public RecordSamplesReadyCallbackAdapter recordSamplesReadyCallbackAdapter; |
@@ -149,8 +149,8 @@ public class MethodCallHandlerImpl implements MethodCallHandler, StateProvider { |
149 | 149 | public AudioProcessingFactoryProvider audioProcessingFactoryProvider; |
150 | 150 |
|
151 | 151 | private ConstraintsMap initializedAndroidAudioConfiguration; |
152 | | - private final Map<String, Double> trackVolumeCache = new ConcurrentHashMap<>(); |
153 | | - private final Map<String, Double> pausedTrackVolumes = new ConcurrentHashMap<>(); |
| 152 | + private final ConcurrentHashMap<String, Double> trackVolumeCache = new ConcurrentHashMap<>(); |
| 153 | + private final ConcurrentHashMap<String, Double> pausedTrackVolumes = new ConcurrentHashMap<>(); |
154 | 154 | private volatile boolean isAudioPlayoutPaused = false; |
155 | 155 |
|
156 | 156 | public static class LogSink implements Loggable { |
@@ -209,16 +209,13 @@ void dispose() { |
209 | 209 | * tracks. |
210 | 210 | */ |
211 | 211 | private boolean isMicrophoneMuted() { |
212 | | - synchronized (localTracks) { |
213 | | - for (LocalTrack track : localTracks.values()) { |
214 | | - if (track instanceof LocalAudioTrack) { |
215 | | - if (track.enabled()) { |
216 | | - return false; |
217 | | - } |
| 212 | + for (LocalTrack track : localTracks.values()) { |
| 213 | + if (track instanceof LocalAudioTrack) { |
| 214 | + if (track.enabled()) { |
| 215 | + return false; |
218 | 216 | } |
219 | 217 | } |
220 | 218 | } |
221 | | - |
222 | 219 | return true; |
223 | 220 | } |
224 | 221 |
|
|
0 commit comments