Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

actions.js 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // @flow
  2. import { getLocalVideoTrack } from '../../features/base/tracks';
  3. import { BACKGROUND_ENABLED, SET_VIRTUAL_BACKGROUND } from './actionTypes';
  4. import { getBackgroundEffect } from './functions';
  5. import logger from './logger';
  6. /**
  7. * Signals the local participant activate the virtual background video or not.
  8. *
  9. * @param {boolean} enabled - If true enables video background, false otherwise.
  10. * @returns {Promise}
  11. */
  12. export function toggleBackgroundEffect(enabled: boolean) {
  13. return async function(dispatch: Object => Object, getState: () => any) {
  14. const state = getState();
  15. const { jitsiTrack } = getLocalVideoTrack(state['features/base/tracks']);
  16. const virtualBackground = state['features/virtual-background'];
  17. try {
  18. if (enabled) {
  19. await jitsiTrack.setEffect(await getBackgroundEffect(virtualBackground));
  20. dispatch(backgroundEnabled(true));
  21. } else {
  22. await jitsiTrack.setEffect(undefined);
  23. dispatch(backgroundEnabled(false));
  24. }
  25. } catch (error) {
  26. dispatch(backgroundEnabled(false));
  27. logger.error('Error on apply backgroun effect:', error);
  28. }
  29. };
  30. }
  31. /**
  32. * Sets the selected virtual background image object.
  33. *
  34. * @param {Object} virtualSource - Virtual background image source.
  35. * @param {boolean} isVirtualBackground - Indicate if virtual image is activated.
  36. * @returns {{
  37. * type: SET_VIRTUAL_BACKGROUND,
  38. * virtualSource: string,
  39. * isVirtualBackground: boolean,
  40. * }}
  41. */
  42. export function setVirtualBackground(virtualSource: string, isVirtualBackground: boolean) {
  43. return {
  44. type: SET_VIRTUAL_BACKGROUND,
  45. virtualSource,
  46. isVirtualBackground
  47. };
  48. }
  49. /**
  50. * Signals the local participant that the background effect has been enabled.
  51. *
  52. * @param {boolean} backgroundEffectEnabled - Indicate if virtual background effect is activated.
  53. * @returns {{
  54. * type: BACKGROUND_ENABLED,
  55. * backgroundEffectEnabled: boolean,
  56. * }}
  57. */
  58. export function backgroundEnabled(backgroundEffectEnabled: boolean) {
  59. return {
  60. type: BACKGROUND_ENABLED,
  61. backgroundEffectEnabled
  62. };
  63. }