export function useSelectVideoQuality()

in src/hooks/sdk/useSelectVideoQuality.tsx [11:44]


export function useSelectVideoQuality(): (quality: VideoQuality) => void {
  const audioVideo = useAudioVideo();
  const logger = useLogger();

  const selectVideoQuality = useCallback(
    (quality: VideoQuality) => {
      if (!audioVideo) {
        return;
      }

      logger.info(`Selecting video quality: ${quality}`);

      switch (quality) {
        case '360p':
          audioVideo.chooseVideoInputQuality(640, 360, 15);
          audioVideo.setVideoMaxBandwidthKbps(600);
          break;
        case '540p':
          audioVideo.chooseVideoInputQuality(960, 540, 15);
          audioVideo.setVideoMaxBandwidthKbps(1400);
          break;
        case '720p':
          audioVideo.chooseVideoInputQuality(1280, 720, 15);
          audioVideo.setVideoMaxBandwidthKbps(1400);
          break;
        default:
          logger.warn(`Unsupported video quality: ${quality}`);
      }
    },
    [audioVideo]
  );

  return selectVideoQuality;
}