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.

actions.js 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // @flow
  2. import type { Dispatch } from 'redux';
  3. import { SET_MAX_RECEIVER_VIDEO_QUALITY, SET_PREFERRED_VIDEO_QUALITY } from './actionTypes';
  4. import { VIDEO_QUALITY_LEVELS } from './constants';
  5. import logger from './logger';
  6. /**
  7. * Sets the max frame height the user prefers to send and receive from the
  8. * remote participants.
  9. *
  10. * @param {number} preferredVideoQuality - The max video resolution to send and
  11. * receive.
  12. * @returns {{
  13. * type: SET_PREFERRED_VIDEO_QUALITY,
  14. * preferredVideoQuality: number
  15. * }}
  16. */
  17. export function setPreferredVideoQuality(preferredVideoQuality: number) {
  18. return {
  19. type: SET_PREFERRED_VIDEO_QUALITY,
  20. preferredVideoQuality
  21. };
  22. }
  23. /**
  24. * Sets the max frame height that should be received from remote videos.
  25. *
  26. * @param {number} maxReceiverVideoQuality - The max video frame height to
  27. * receive.
  28. * @returns {{
  29. * type: SET_MAX_RECEIVER_VIDEO_QUALITY,
  30. * maxReceiverVideoQuality: number
  31. * }}
  32. */
  33. export function setMaxReceiverVideoQuality(maxReceiverVideoQuality: number) {
  34. return {
  35. type: SET_MAX_RECEIVER_VIDEO_QUALITY,
  36. maxReceiverVideoQuality
  37. };
  38. }
  39. /**
  40. * Sets the maximum video size the local participant should send and receive from
  41. * remote participants.
  42. *
  43. * @param {number} frameHeight - The user preferred max frame height for send and
  44. * receive video.
  45. * @returns {void}
  46. */
  47. export function setVideoQuality(frameHeight: number) {
  48. return (dispatch: Dispatch<any>, getState: Function) => {
  49. const { conference, maxReceiverVideoQuality } = getState()['features/base/conference'];
  50. if (frameHeight < VIDEO_QUALITY_LEVELS.LOW) {
  51. logger.error(`Invalid frame height for video quality - ${frameHeight}`);
  52. return;
  53. }
  54. conference.setReceiverVideoConstraint(Math.min(frameHeight, maxReceiverVideoQuality));
  55. conference.setSenderVideoConstraint(Math.min(frameHeight, VIDEO_QUALITY_LEVELS.HIGH))
  56. .catch(err => {
  57. logger.error(`Set video quality command failed - ${err}`);
  58. });
  59. };
  60. }