Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

ThumbnailAudioIndicator.tsx 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React, { useEffect, useState } from 'react';
  2. import AudioLevelIndicator from '../../../audio-level-indicator/components/AudioLevelIndicator';
  3. import JitsiMeetJS from '../../../base/lib-jitsi-meet/_';
  4. import { ITrack } from '../../../base/tracks/types';
  5. const JitsiTrackEvents = JitsiMeetJS.events.track;
  6. interface IProps {
  7. /**
  8. * The audio track related to the participant.
  9. */
  10. _audioTrack?: ITrack;
  11. }
  12. const ThumbnailAudioIndicator = ({
  13. _audioTrack
  14. }: IProps) => {
  15. const [ audioLevel, setAudioLevel ] = useState(0);
  16. useEffect(() => {
  17. setAudioLevel(0);
  18. if (_audioTrack) {
  19. const { jitsiTrack } = _audioTrack;
  20. jitsiTrack?.on(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, setAudioLevel);
  21. }
  22. return () => {
  23. if (_audioTrack) {
  24. const { jitsiTrack } = _audioTrack;
  25. jitsiTrack?.off(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, setAudioLevel);
  26. }
  27. };
  28. }, [ _audioTrack ]);
  29. return (
  30. <span className = 'audioindicator-container'>
  31. <AudioLevelIndicator audioLevel = { audioLevel } />
  32. </span>
  33. );
  34. };
  35. export default ThumbnailAudioIndicator;