|
@@ -6,7 +6,7 @@ import type { Dispatch } from 'redux';
|
6
|
6
|
|
7
|
7
|
import { ColorSchemeRegistry } from '../../../base/color-scheme';
|
8
|
8
|
import { openDialog } from '../../../base/dialog';
|
9
|
|
-import { MEDIA_TYPE, VIDEO_TYPE, Audio } from '../../../base/media';
|
|
9
|
+import { MEDIA_TYPE, VIDEO_TYPE } from '../../../base/media';
|
10
|
10
|
import {
|
11
|
11
|
PARTICIPANT_ROLE,
|
12
|
12
|
ParticipantView,
|
|
@@ -36,9 +36,9 @@ import VideoMutedIndicator from './VideoMutedIndicator';
|
36
|
36
|
type Props = {
|
37
|
37
|
|
38
|
38
|
/**
|
39
|
|
- * The Redux representation of the participant's audio track.
|
|
39
|
+ * Whether local audio (microphone) is muted or not.
|
40
|
40
|
*/
|
41
|
|
- _audioTrack: Object,
|
|
41
|
+ _audioMuted: boolean,
|
42
|
42
|
|
43
|
43
|
/**
|
44
|
44
|
* The Redux representation of the state "features/large-video".
|
|
@@ -122,7 +122,7 @@ class Thumbnail extends Component<Props> {
|
122
|
122
|
*/
|
123
|
123
|
render() {
|
124
|
124
|
const {
|
125
|
|
- _audioTrack: audioTrack,
|
|
125
|
+ _audioMuted: audioMuted,
|
126
|
126
|
_largeVideo: largeVideo,
|
127
|
127
|
_onClick,
|
128
|
128
|
_onShowRemoteVideoMenu,
|
|
@@ -136,14 +136,6 @@ class Thumbnail extends Component<Props> {
|
136
|
136
|
tileView
|
137
|
137
|
} = this.props;
|
138
|
138
|
|
139
|
|
- // We don't render audio in any of the following:
|
140
|
|
- // 1. The audio (source) is muted. There's no practical reason (that we
|
141
|
|
- // know of, anyway) why we'd want to render it given that it's
|
142
|
|
- // silence (& not even comfort noise).
|
143
|
|
- // 2. The audio is local. If we were to render local audio, the local
|
144
|
|
- // participants would be hearing themselves.
|
145
|
|
- const audioMuted = !audioTrack || audioTrack.muted;
|
146
|
|
- const renderAudio = !audioMuted && !audioTrack.local;
|
147
|
139
|
const participantId = participant.id;
|
148
|
140
|
const participantInLargeVideo
|
149
|
141
|
= participantId === largeVideo.participantId;
|
|
@@ -162,11 +154,6 @@ class Thumbnail extends Component<Props> {
|
162
|
154
|
] }
|
163
|
155
|
touchFeedback = { false }>
|
164
|
156
|
|
165
|
|
- { renderAudio
|
166
|
|
- && <Audio
|
167
|
|
- stream
|
168
|
|
- = { audioTrack.jitsiTrack.getOriginalStream() } /> }
|
169
|
|
-
|
170
|
157
|
<ParticipantView
|
171
|
158
|
avatarSize = { AVATAR_SIZE }
|
172
|
159
|
disableVideo = { isScreenShare }
|
|
@@ -281,7 +268,7 @@ function _mapStateToProps(state, ownProps) {
|
281
|
268
|
const renderModeratorIndicator = !_isEveryoneModerator && participant.role === PARTICIPANT_ROLE.MODERATOR;
|
282
|
269
|
|
283
|
270
|
return {
|
284
|
|
- _audioTrack: audioTrack,
|
|
271
|
+ _audioMuted: audioTrack?.muted ?? true,
|
285
|
272
|
_largeVideo: largeVideo,
|
286
|
273
|
_renderDominantSpeakerIndicator: renderDominantSpeakerIndicator,
|
287
|
274
|
_renderModeratorIndicator: renderModeratorIndicator,
|