|
|
@@ -27,6 +27,14 @@ class ParticipantView extends Component {
|
|
27
|
27
|
* @static
|
|
28
|
28
|
*/
|
|
29
|
29
|
static propTypes = {
|
|
|
30
|
+ /**
|
|
|
31
|
+ * The indicator which determines whether conferencing is in audio-only
|
|
|
32
|
+ * mode.
|
|
|
33
|
+ *
|
|
|
34
|
+ * @private
|
|
|
35
|
+ */
|
|
|
36
|
+ _audioOnly: React.PropTypes.bool,
|
|
|
37
|
+
|
|
30
|
38
|
/**
|
|
31
|
39
|
* The source (e.g. URI, URL) of the avatar image of the participant
|
|
32
|
40
|
* with {@link #participantId}.
|
|
|
@@ -107,7 +115,9 @@ class ParticipantView extends Component {
|
|
107
|
115
|
// updated only after videoTrack is rendered.
|
|
108
|
116
|
const waitForVideoStarted = false;
|
|
109
|
117
|
const renderVideo
|
|
110
|
|
- = (connectionStatus === JitsiParticipantConnectionStatus.ACTIVE)
|
|
|
118
|
+ = !this.props._audioOnly
|
|
|
119
|
+ && (connectionStatus
|
|
|
120
|
+ === JitsiParticipantConnectionStatus.ACTIVE)
|
|
111
|
121
|
&& shouldRenderVideoTrack(videoTrack, waitForVideoStarted);
|
|
112
|
122
|
|
|
113
|
123
|
// Is the avatar to be rendered?
|
|
|
@@ -170,6 +180,7 @@ function _toBoolean(value, undefinedValue) {
|
|
170
|
180
|
* (instance of) ParticipantView.
|
|
171
|
181
|
* @private
|
|
172
|
182
|
* @returns {{
|
|
|
183
|
+ * _audioOnly: boolean,
|
|
173
|
184
|
* _avatar: string,
|
|
174
|
185
|
* _connectionStatus: string,
|
|
175
|
186
|
* _videoTrack: Track
|
|
|
@@ -190,6 +201,7 @@ function _mapStateToProps(state, ownProps) {
|
|
190
|
201
|
}
|
|
191
|
202
|
|
|
192
|
203
|
return {
|
|
|
204
|
+ _audioOnly: state['features/base/conference'].audioOnly,
|
|
193
|
205
|
_avatar: avatar,
|
|
194
|
206
|
_connectionStatus:
|
|
195
|
207
|
connectionStatus
|