MediaSFU React Native (Expo)
    Preparing search index...

    Function consumerResume

    • Resumes a consumer transport by handling the provided track and updating the application state.

      This function manages the resumption of media consumer transports (audio/video/screen) and updates the UI accordingly. It supports custom UI components through both custom render functions and component overrides, particularly for the MiniAudioPlayer component.

      Key responsibilities:

      • Creates MediaStream from received track
      • Updates stream arrays (audio, video, screen)
      • Triggers UI updates through reorderStreams and prepopulateUserMedia
      • Handles MiniAudioPlayer rendering for off-screen audio participants
      • Manages consumer transport state

      Parameters

      Returns Promise<void>

      A promise that resolves when the consumer is successfully resumed.

      const CustomMiniAudio = ({ stream, name }) => (
      <View><Text>🎵 {name}</Text></View>
      );

      Throws an error if the resumption fails or if there is an issue with the parameters.

      // Basic usage
      import { consumerResume } from 'mediasfu-reactnative-expo';

      await consumerResume({
      track: audioTrack,
      remoteProducerId: 'producer-123',
      params: {
      id: 'consumer-456',
      producerId: 'producer-123',
      kind: 'audio',
      rtpParameters: rtpParams,
      },
      consumer: consumerInstance,
      nsock: socketInstance,
      parameters: {
      eventType: 'conference',
      participants: allParticipants,
      // ... other required parameters
      },
      });
      // With custom MiniAudio component for off-screen audio visualization
      import { consumerResume } from 'mediasfu-reactnative-expo';
      import { CustomMiniAudio } from './components/CustomMiniAudio';

      await consumerResume({
      track: audioTrack,
      remoteProducerId: 'producer-123',
      params: {
      id: 'consumer-456',
      producerId: 'producer-123',
      kind: 'audio',
      rtpParameters: rtpParams,
      },
      consumer: consumerInstance,
      nsock: socketInstance,
      parameters: {
      miniAudioComponent: CustomMiniAudio, // Custom audio waveform component
      eventType: 'conference',
      participants: allParticipants,
      // ... other parameters
      },
      });
      // With full component override suite
      import { consumerResume } from 'mediasfu-reactnative-expo';

      await consumerResume({
      track: videoTrack,
      remoteProducerId: 'producer-789',
      params: {
      id: 'consumer-101',
      producerId: 'producer-789',
      kind: 'video',
      rtpParameters: rtpParams,
      },
      consumer: consumerInstance,
      nsock: socketInstance,
      parameters: {
      audioOnlyStreams: [],
      gotAllVids: false,
      defer_receive: false,
      firstAll: false,
      remoteScreenStream: [],
      hostLabel: 'host',
      whiteboardStarted: false,
      whiteboardEnded: false,
      updateUpdateMainWindow: (value) => { console.log('updated')},
      updateAllAudioStreams: (streams) => { console.log('updated')},
      updateAllVideoStreams: (streams) => { console.log('updated')},
      updateStreamNames: (streams) => { console.log('updated')},
      updateAudStreamNames: (streams) => { console.log('updated')},
      updateNStream: (stream) => { console.log('updated')},
      updateMainHeightWidth: (value) => { console.log('updated')},
      updateLock_screen: (value) => { console.log('updated')},
      updateFirstAll: (value) => { console.log('updated')},
      updateRemoteScreenStream: (streams) => { console.log('updated')},
      updateOldAllStreams: (streams) => { console.log('updated')},
      updateAudioOnlyStreams: (streams) => { console.log('updated')},
      updateShareScreenStarted: (value) => { console.log('updated')},
      updateGotAllVids: (value) => { console.log('updated')},
      updateScreenId: (id) => { console.log('updated')},
      updateDefer_receive: (value) => { console.log('updated')},
      reorderStreams: (params) => { console.log('reordered') }
      prepopulateUserMedia: (params) => { console.log('prepopulated') },
      },
      nsock: socketInstance,
      };

      consumerResume(options)
      .then(() => {
      console.log('Consumer resumed successfully');
      })
      .catch((error) => {
      console.error('Error resuming consumer:', error);
      });