|
|
|
@ -41,7 +41,12 @@ type Props = AudioSettingsEntryProps & { |
|
|
|
|
* Click handler for component. |
|
|
|
|
*/ |
|
|
|
|
onClick: Function, |
|
|
|
|
listHeaderId: string |
|
|
|
|
listHeaderId: string, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Used to decide whether to listen to audio level changes. |
|
|
|
|
*/ |
|
|
|
|
measureAudioLevels: boolean, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type State = { |
|
|
|
@ -129,9 +134,9 @@ export default class MicrophoneEntry extends Component<Props, State> { |
|
|
|
|
* @returns {void} |
|
|
|
|
*/ |
|
|
|
|
_startListening() { |
|
|
|
|
const { jitsiTrack } = this.props; |
|
|
|
|
const { jitsiTrack, measureAudioLevels } = this.props; |
|
|
|
|
|
|
|
|
|
jitsiTrack && jitsiTrack.on( |
|
|
|
|
jitsiTrack && measureAudioLevels && jitsiTrack.on( |
|
|
|
|
JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, |
|
|
|
|
this._updateLevel); |
|
|
|
|
} |
|
|
|
@ -185,20 +190,32 @@ export default class MicrophoneEntry extends Component<Props, State> { |
|
|
|
|
* @inheritdoc |
|
|
|
|
*/ |
|
|
|
|
render() { |
|
|
|
|
|
|
|
|
|
const { deviceId, children, hasError, index, isSelected, length, jitsiTrack, listHeaderId } = this.props; |
|
|
|
|
const { |
|
|
|
|
deviceId, |
|
|
|
|
children, |
|
|
|
|
hasError, |
|
|
|
|
index, |
|
|
|
|
isSelected, |
|
|
|
|
length, |
|
|
|
|
jitsiTrack, |
|
|
|
|
listHeaderId, |
|
|
|
|
measureAudioLevels |
|
|
|
|
} = this.props; |
|
|
|
|
|
|
|
|
|
const deviceTextId: string = `choose_microphone${deviceId}`; |
|
|
|
|
|
|
|
|
|
const labelledby: string = `${listHeaderId} ${deviceTextId} `; |
|
|
|
|
|
|
|
|
|
const className = `audio-preview-microphone ${measureAudioLevels |
|
|
|
|
? 'audio-preview-microphone--withmeter' : 'audio-preview-microphone--nometer'}`;
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<li |
|
|
|
|
aria-checked = { isSelected } |
|
|
|
|
aria-labelledby = { labelledby } |
|
|
|
|
aria-posinset = { index } |
|
|
|
|
aria-setsize = { length } |
|
|
|
|
className = 'audio-preview-microphone' |
|
|
|
|
className = { className } |
|
|
|
|
onClick = { this._onClick } |
|
|
|
|
onKeyPress = { this._onKeyPress } |
|
|
|
|
role = 'radio' |
|
|
|
@ -209,7 +226,7 @@ export default class MicrophoneEntry extends Component<Props, State> { |
|
|
|
|
labelId = { deviceTextId }> |
|
|
|
|
{children} |
|
|
|
|
</AudioSettingsEntry> |
|
|
|
|
{ Boolean(jitsiTrack) && <Meter |
|
|
|
|
{ Boolean(jitsiTrack) && measureAudioLevels && <Meter |
|
|
|
|
className = 'audio-preview-meter-mic' |
|
|
|
|
isDisabled = { hasError } |
|
|
|
|
level = { this.state.level } /> |
|
|
|
|