diff --git a/.changeset/fix-media-recorder-restart.md b/.changeset/fix-media-recorder-restart.md deleted file mode 100644 index a51c7d73..00000000 --- a/.changeset/fix-media-recorder-restart.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@livekit/react-native': patch ---- - -Fix `MediaRecorder` duplicating audio data after it is stopped and started again diff --git a/CHANGELOG.md b/CHANGELOG.md index ab54c948..f4185c85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @livekit/react-native +## 3.1.1 + +### Patch Changes + +- Fix `MediaRecorder` duplicating audio data after it is stopped and started again - [#478](https://github.com/livekit/client-sdk-react-native/pull/478) ([@RaphaelFakhri](https://github.com/RaphaelFakhri)) + ## 3.1.0 ### Minor Changes diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index dc27c6d4..aec8e247 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -1,20 +1,20 @@ :root { - --light-hl-0: #795E26; - --dark-hl-0: #DCDCAA; - --light-hl-1: #000000; - --dark-hl-1: #D4D4D4; - --light-hl-2: #A31515; - --dark-hl-2: #CE9178; - --light-hl-3: #0000FF; - --dark-hl-3: #569CD6; - --light-hl-4: #267F99; - --dark-hl-4: #4EC9B0; - --light-hl-5: #008000; - --dark-hl-5: #6A9955; - --light-hl-6: #001080; - --dark-hl-6: #9CDCFE; - --light-hl-7: #AF00DB; - --dark-hl-7: #C586C0; + --light-hl-0: #008000; + --dark-hl-0: #6A9955; + --light-hl-1: #AF00DB; + --dark-hl-1: #C586C0; + --light-hl-2: #000000; + --dark-hl-2: #D4D4D4; + --light-hl-3: #795E26; + --dark-hl-3: #DCDCAA; + --light-hl-4: #001080; + --dark-hl-4: #9CDCFE; + --light-hl-5: #A31515; + --dark-hl-5: #CE9178; + --light-hl-6: #0000FF; + --dark-hl-6: #569CD6; + --light-hl-7: #267F99; + --dark-hl-7: #4EC9B0; --light-hl-8: #0070C1; --dark-hl-8: #4FC1FF; --light-hl-9: #800000; diff --git a/docs/classes/AudioSession.html b/docs/classes/AudioSession.html index 47f8655e..85a42cc4 100644 --- a/docs/classes/AudioSession.html +++ b/docs/classes/AudioSession.html @@ -1,4 +1,4 @@ -AudioSession | LiveKit React Native Client SDK - v3.1.0
LiveKit React Native Client SDK - v3.1.0
    Preparing search index...

    Class AudioSession

    Index

    Constructors

    constructor +AudioSession | LiveKit React Native Client SDK - v3.1.1

    Class AudioSession

    Index

    Constructors

    Methods

    Constructors

    Methods

    • Applies the provided audio configuration to the underlying AudioSession.

      Must be called prior to connecting to a Room for the configuration to apply correctly.

      See also setupIOSAudioManagement for automatic configuration of iOS audio options.

      -

      Parameters

      Returns Promise<void>

    • Gets the available audio outputs for use with selectAudioOutput.

      startAudioSession must be called prior to using this method.

      For Android, will return if available:

        @@ -30,18 +30,18 @@ or use a library like react-native-avroutepicker for a native platform control.

      Returns Promise<string[]>

      the available audio output types

      -
    • Select the provided audio output if available.

      +
    • Directly change the AVAudioSession category/mode.

      +

    Returns Promise<void>

    • Set default audio track volume when new tracks are subscribed. +

    Returns Promise<void>

    Returns Promise<void>

    +

    Returns Promise<void>

    diff --git a/docs/classes/RNE2EEManager.html b/docs/classes/RNE2EEManager.html index e2b3812a..f9528a71 100644 --- a/docs/classes/RNE2EEManager.html +++ b/docs/classes/RNE2EEManager.html @@ -1,4 +1,4 @@ -RNE2EEManager | LiveKit React Native Client SDK - v3.1.0
    LiveKit React Native Client SDK - v3.1.0
      Preparing search index...

      Class RNE2EEManagerExperimental

      Hierarchy

      • TypedEventEmitter<E2EEManagerCallbacks, this>
        • RNE2EEManager

      Implements

      • BaseE2EEManager
      Index

      Constructors

      constructor +RNE2EEManager | LiveKit React Native Client SDK - v3.1.1

      Class RNE2EEManagerExperimental

      Hierarchy

      • TypedEventEmitter<E2EEManagerCallbacks, this>
        • RNE2EEManager

      Implements

      • BaseE2EEManager
      Index

      Constructors

      Accessors

      • get isDataChannelEncryptionEnabled(): boolean
        Experimental

        Returns boolean

      • set isDataChannelEncryptionEnabled(value: boolean): void
        Experimental

        Parameters

        • value: boolean

        Returns void

      • get isEnabled(): boolean
        Experimental

        Returns boolean

      Methods

      • Experimental

        Parameters

        • data: Uint8Array

        Returns Promise<{}>

      • Experimental

        Parameters

        • payload: Uint8Array
        • iv: Uint8Array
        • participantIdentity: string
        • keyIndex: number

        Returns Promise<{}>

      • Experimental

        Parameters

        • enabled: boolean
        • participantIdentity: string

        Returns void

      • Experimental

        Parameters

        • trailer: Uint8Array

        Returns void

      • Experimental

        Parameters

        • room: Room

        Returns void

      • Experimental

        Parameters

        • _engine: RTCEngine

        Returns void

      +

      Constructors

      Accessors

      • get isDataChannelEncryptionEnabled(): boolean
        Experimental

        Returns boolean

      • set isDataChannelEncryptionEnabled(value: boolean): void
        Experimental

        Parameters

        • value: boolean

        Returns void

      • get isEnabled(): boolean
        Experimental

        Returns boolean

      Methods

      • Experimental

        Parameters

        • data: Uint8Array

        Returns Promise<{}>

      • Experimental

        Parameters

        • payload: Uint8Array
        • iv: Uint8Array
        • participantIdentity: string
        • keyIndex: number

        Returns Promise<{}>

      • Experimental

        Parameters

        • enabled: boolean
        • participantIdentity: string

        Returns void

      • Experimental

        Parameters

        • trailer: Uint8Array

        Returns void

      • Experimental

        Parameters

        • room: Room

        Returns void

      • Experimental

        Parameters

        • _engine: RTCEngine

        Returns void

      diff --git a/docs/classes/RNKeyProvider.html b/docs/classes/RNKeyProvider.html index a2bfb5c1..d052d84c 100644 --- a/docs/classes/RNKeyProvider.html +++ b/docs/classes/RNKeyProvider.html @@ -1,4 +1,4 @@ -RNKeyProvider | LiveKit React Native Client SDK - v3.1.0
      LiveKit React Native Client SDK - v3.1.0
        Preparing search index...

        Class RNKeyProviderExperimental

        Hierarchy

        • BaseKeyProvider
          • RNKeyProvider
        Index

        Constructors

        constructor +RNKeyProvider | LiveKit React Native Client SDK - v3.1.1

        Class RNKeyProviderExperimental

        Hierarchy

        • BaseKeyProvider
          • RNKeyProvider
        Index

        Constructors

        Methods

        • Experimental

          Parameters

          • participantId: string

          Returns number

        • Experimental

          Parameters

          • OptionalparticipantIdentity: string
          • OptionalkeyIndex: number

          Returns Promise<void>

        • Experimental

          Parameters

          • OptionalkeyIndex: number

          Returns Promise<void>

        • Experimental

          Accepts a passphrase that's used to create the crypto keys for a participant's stream.

          -

          Parameters

          • participantId: string
          • key: string | Uint8Array<ArrayBufferLike>
          • OptionalkeyIndex: number

          Returns Promise<any>

        • Experimental

          Accepts a passphrase that's used to create the crypto keys.

          -

          Parameters

          • key: string | Uint8Array<ArrayBufferLike>
          • OptionalkeyIndex: number

          Returns Promise<any>

        • Experimental

          Parameters

          • trailer: Uint8Array

          Returns Promise<any>

        +

        Constructors

        Methods

        • Experimental

          Parameters

          • participantId: string

          Returns number

        • Experimental

          Parameters

          • OptionalparticipantIdentity: string
          • OptionalkeyIndex: number

          Returns Promise<void>

        • Experimental

          Parameters

          • OptionalkeyIndex: number

          Returns Promise<void>

        • Experimental

          Accepts a passphrase that's used to create the crypto keys for a participant's stream.

          +

          Parameters

          • participantId: string
          • key: string | Uint8Array<ArrayBufferLike>
          • OptionalkeyIndex: number

          Returns Promise<any>

        • Experimental

          Accepts a passphrase that's used to create the crypto keys.

          +

          Parameters

          • key: string | Uint8Array<ArrayBufferLike>
          • OptionalkeyIndex: number

          Returns Promise<any>

        • Experimental

          Parameters

          • trailer: Uint8Array

          Returns Promise<any>

        diff --git a/docs/functions/BarVisualizer.html b/docs/functions/BarVisualizer.html index e2b4a407..9e719e6a 100644 --- a/docs/functions/BarVisualizer.html +++ b/docs/functions/BarVisualizer.html @@ -1,7 +1,7 @@ -BarVisualizer | LiveKit React Native Client SDK - v3.1.0
        LiveKit React Native Client SDK - v3.1.0
          Preparing search index...

          Function BarVisualizer

          Visualizes audio signals from a TrackReference as bars. +BarVisualizer | LiveKit React Native Client SDK - v3.1.1

          Function BarVisualizer

          Visualizes audio signals from a TrackReference as bars. If the state prop is set, it automatically transitions between VoiceAssistant states.

          For VoiceAssistant state transitions this component requires a voice assistant agent running with livekit-agents >= 0.9.0

          -
          function SimpleVoiceAssistant() {
          const { state, audioTrack } = useVoiceAssistant();
          return (
          <BarVisualizer
          state={state}
          trackRef={audioTrack}
          />
          );
          } +
          function SimpleVoiceAssistant() {
          const { state, audioTrack } = useVoiceAssistant();
          return (
          <BarVisualizer
          state={state}
          trackRef={audioTrack}
          />
          );
          }
          -
          +
          diff --git a/docs/functions/LiveKitRoom.html b/docs/functions/LiveKitRoom.html index 296f8405..2675bf7d 100644 --- a/docs/functions/LiveKitRoom.html +++ b/docs/functions/LiveKitRoom.html @@ -1,7 +1,7 @@ -LiveKitRoom | LiveKit React Native Client SDK - v3.1.0

          Function LiveKitRoom

          • The LiveKitRoom component provides the room context to all its child components. +LiveKitRoom | LiveKit React Native Client SDK - v3.1.1

            Function LiveKitRoom

            • The LiveKitRoom component provides the room context to all its child components. It is generally the starting point of your LiveKit app and the root of the LiveKit component tree. It provides the room state as a React context to all child components, so you don't have to pass it yourself.

              -

              Parameters

              Returns Element

              <LiveKitRoom
              token='<livekit-token>'
              serverUrl='<url-to-livekit-server>'
              connect={true}
              >
              ...
              </LiveKitRoom> +

              Parameters

              Returns Element

              <LiveKitRoom
              token='<livekit-token>'
              serverUrl='<url-to-livekit-server>'
              connect={true}
              >
              ...
              </LiveKitRoom>
              -
            +
          diff --git a/docs/functions/VideoView.html b/docs/functions/VideoView.html index eae1a571..975d6dd6 100644 --- a/docs/functions/VideoView.html +++ b/docs/functions/VideoView.html @@ -1,2 +1,2 @@ -VideoView | LiveKit React Native Client SDK - v3.1.0

          Function VideoView

          • Parameters

            Returns Element

            use VideoTrack and VideoTrackProps instead.

            -
          +VideoView | LiveKit React Native Client SDK - v3.1.1

          Function VideoView

          • Parameters

            Returns Element

            use VideoTrack and VideoTrackProps instead.

            +
          diff --git a/docs/functions/getDefaultAppleAudioConfigurationForMode.html b/docs/functions/getDefaultAppleAudioConfigurationForMode.html index ceff956f..e8ac94ca 100644 --- a/docs/functions/getDefaultAppleAudioConfigurationForMode.html +++ b/docs/functions/getDefaultAppleAudioConfigurationForMode.html @@ -1,7 +1,7 @@ -getDefaultAppleAudioConfigurationForMode | LiveKit React Native Client SDK - v3.1.0

          Function getDefaultAppleAudioConfigurationForMode

          diff --git a/docs/functions/registerGlobals.html b/docs/functions/registerGlobals.html index f2b3fe56..705ff2b9 100644 --- a/docs/functions/registerGlobals.html +++ b/docs/functions/registerGlobals.html @@ -1,4 +1,4 @@ -registerGlobals | LiveKit React Native Client SDK - v3.1.0

          Function registerGlobals

          Returns void

          diff --git a/docs/functions/setLogLevel.html b/docs/functions/setLogLevel.html index f3036dfc..a9cfaf0f 100644 --- a/docs/functions/setLogLevel.html +++ b/docs/functions/setLogLevel.html @@ -1,3 +1,3 @@ -setLogLevel | LiveKit React Native Client SDK - v3.1.0

          Function setLogLevel

          • Set the log level for both the @livekit/react-native package and the @livekit-client package. +setLogLevel | LiveKit React Native Client SDK - v3.1.1

            Function setLogLevel

            • Set the log level for both the @livekit/react-native package and the @livekit-client package. To set the @livekit-client log independently, use the liveKitClientLogLevel prop on the options object.

              -

              Parameters

              • level: "trace" | "debug" | "info" | "warn" | "error" | "silent" | LogLevel
              • options: SetLogLevelOptions = {}

              Returns void

            +

            Parameters

            • level: "trace" | "debug" | "info" | "warn" | "error" | "silent" | LogLevel
            • options: SetLogLevelOptions = {}

            Returns void

          diff --git a/docs/functions/setupIOSAudioManagement.html b/docs/functions/setupIOSAudioManagement.html index e3794080..56643225 100644 --- a/docs/functions/setupIOSAudioManagement.html +++ b/docs/functions/setupIOSAudioManagement.html @@ -1,4 +1,4 @@ -setupIOSAudioManagement | LiveKit React Native Client SDK - v3.1.0

          Function setupIOSAudioManagement

          • Sets up automatic iOS audio session management based on audio engine state.

            +setupIOSAudioManagement | LiveKit React Native Client SDK - v3.1.1

            Function setupIOSAudioManagement

            • Sets up automatic iOS audio session management based on audio engine state.

              Call this once at app startup (e.g. in index.js). registerGlobals() invokes it for you by default unless autoConfigureAudioSession: false is passed.

              @@ -14,16 +14,16 @@

              Parameters

              • OptionalpreferSpeakerOutput: boolean

                Whether to prefer speaker output. Defaults to true.

              Returns () => void

              A cleanup function that removes the installed handlers or native configuration. A cleanup function from a superseded setup is a no-op.

              -
            • Sets up automatic iOS audio session management with a static native policy.

              +
            • Sets up automatic iOS audio session management with a static native policy.

              Parameters

              • preferSpeakerOutput: boolean

                Unused when a full policy is provided; kept for call-site consistency with the default overload.

              • policy: IOSAudioSessionPolicy

                Static recording/playout configuration applied natively.

              Returns () => void

              setupIOSAudioManagement for the default native path and usage notes.

              -
            • Parameters

              Returns () => void

              The onConfigureNativeAudio callback is unsafe. It runs inside +

            • Parameters

              Returns () => void

              The onConfigureNativeAudio callback is unsafe. It runs inside the audio engine's lifecycle callbacks while native code waits for the result (bounded at a few seconds). The callback must return quickly and must not call APIs that enter the WebRTC engine or a peer connection (for example addTransceiver, getUserMedia, or device enumeration): those can block on the same engine operation the callback is holding up. Prefer the default native path, or pass an IOSAudioSessionPolicy.

              -
            +
          diff --git a/docs/functions/sortParticipants.html b/docs/functions/sortParticipants.html index 5df21892..bf435ea0 100644 --- a/docs/functions/sortParticipants.html +++ b/docs/functions/sortParticipants.html @@ -1,4 +1,4 @@ -sortParticipants | LiveKit React Native Client SDK - v3.1.0

          Function sortParticipants

          • Default sort for participants, it'll order participants by:

            +sortParticipants | LiveKit React Native Client SDK - v3.1.1

            Function sortParticipants

            • Default sort for participants, it'll order participants by:

              1. dominant speaker (speaker with the loudest audio level)
              2. local participant
              3. @@ -6,4 +6,4 @@
              4. participants with video on
              5. by joinedAt
              -

              Parameters

              • participants: Participant[]
              • OptionallocalParticipant: LocalParticipant

              Returns void

            +

            Parameters

            • participants: Participant[]
            • OptionallocalParticipant: LocalParticipant

            Returns void

          diff --git a/docs/functions/useBarAnimator.html b/docs/functions/useBarAnimator.html index acae4b00..18071e15 100644 --- a/docs/functions/useBarAnimator.html +++ b/docs/functions/useBarAnimator.html @@ -1 +1 @@ -useBarAnimator | LiveKit React Native Client SDK - v3.1.0

          Function useBarAnimator

          • Parameters

            • state: AgentState | undefined
            • columns: number
            • interval: number

            Returns number[]

          +useBarAnimator | LiveKit React Native Client SDK - v3.1.1

          Function useBarAnimator

          • Parameters

            • state: AgentState | undefined
            • columns: number
            • interval: number

            Returns number[]

          diff --git a/docs/functions/useIOSAudioManagement.html b/docs/functions/useIOSAudioManagement.html index 295ba4f4..6e53782c 100644 --- a/docs/functions/useIOSAudioManagement.html +++ b/docs/functions/useIOSAudioManagement.html @@ -1,4 +1,4 @@ -useIOSAudioManagement | LiveKit React Native Client SDK - v3.1.0

          Function useIOSAudioManagement

          • Parameters

            Returns void

            Use setupIOSAudioManagement instead. +useIOSAudioManagement | LiveKit React Native Client SDK - v3.1.1

            Function useIOSAudioManagement

            • Parameters

              Returns void

              Use setupIOSAudioManagement instead. The room parameter is ignored — audio session is now managed via audio engine events, not room track counts.

              The onConfigureNativeAudio callback is also deprecated and unsafe: it @@ -10,4 +10,4 @@ publication counts. Edge cases can differ. For example, a published-but-muted local audio track that previously yielded localOnly may now appear as remoteOnly or none.

              -
            +
          diff --git a/docs/functions/useMultibandTrackVolume.html b/docs/functions/useMultibandTrackVolume.html index d4dd7f5a..eb5cb768 100644 --- a/docs/functions/useMultibandTrackVolume.html +++ b/docs/functions/useMultibandTrackVolume.html @@ -1,3 +1,3 @@ -useMultibandTrackVolume | LiveKit React Native Client SDK - v3.1.0

          Function useMultibandTrackVolume

          • A hook for tracking the volume of an audio track across multiple frequency bands.

            +useMultibandTrackVolume | LiveKit React Native Client SDK - v3.1.1

            Function useMultibandTrackVolume

            • A hook for tracking the volume of an audio track across multiple frequency bands.

              Parameters

              • OptionaltrackOrTrackReference: LocalAudioTrack | RemoteAudioTrack | TrackReferenceOrPlaceholder
              • Optionaloptions: MultiBandTrackVolumeOptions

              Returns number[]

              A number array containing the volume for each frequency band.

              -
            +
          diff --git a/docs/functions/useParticipant.html b/docs/functions/useParticipant.html index 15542dd8..c7ccb3d6 100644 --- a/docs/functions/useParticipant.html +++ b/docs/functions/useParticipant.html @@ -1,2 +1,2 @@ -useParticipant | LiveKit React Native Client SDK - v3.1.0

          Function useParticipant

          +useParticipant | LiveKit React Native Client SDK - v3.1.1

          Function useParticipant

          diff --git a/docs/functions/useRNE2EEManager.html b/docs/functions/useRNE2EEManager.html index a0fd1336..42cfe461 100644 --- a/docs/functions/useRNE2EEManager.html +++ b/docs/functions/useRNE2EEManager.html @@ -1 +1 @@ -useRNE2EEManager | LiveKit React Native Client SDK - v3.1.0

          Function useRNE2EEManager

          +useRNE2EEManager | LiveKit React Native Client SDK - v3.1.1

          Function useRNE2EEManager

          diff --git a/docs/functions/useRoom.html b/docs/functions/useRoom.html index 3f9b7230..a09a6040 100644 --- a/docs/functions/useRoom.html +++ b/docs/functions/useRoom.html @@ -1,2 +1,2 @@ -useRoom | LiveKit React Native Client SDK - v3.1.0

          Function useRoom

          +useRoom | LiveKit React Native Client SDK - v3.1.1

          Function useRoom

          diff --git a/docs/functions/useTrackVolume.html b/docs/functions/useTrackVolume.html index 054b50b3..336e7d13 100644 --- a/docs/functions/useTrackVolume.html +++ b/docs/functions/useTrackVolume.html @@ -1,3 +1,3 @@ -useTrackVolume | LiveKit React Native Client SDK - v3.1.0

          Function useTrackVolume

          • A hook for tracking the volume of an audio track.

            +useTrackVolume | LiveKit React Native Client SDK - v3.1.1

            Function useTrackVolume

            • A hook for tracking the volume of an audio track.

              Parameters

              • OptionaltrackOrTrackReference: LocalAudioTrack | RemoteAudioTrack | TrackReferenceOrPlaceholder

              Returns number

              A number between 0-1 representing the volume.

              -
            +
          diff --git a/docs/hierarchy.html b/docs/hierarchy.html index d3b0b9c7..72c82a3e 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -LiveKit React Native Client SDK - v3.1.0

          LiveKit React Native Client SDK - v3.1.0

          Hierarchy Summary

          +LiveKit React Native Client SDK - v3.1.1

          LiveKit React Native Client SDK - v3.1.1

          Hierarchy Summary

          diff --git a/docs/index.html b/docs/index.html index 5aa8d936..1ad67180 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ -LiveKit React Native Client SDK - v3.1.0

          LiveKit React Native Client SDK - v3.1.0

          +LiveKit React Native Client SDK - v3.1.1

          LiveKit React Native Client SDK - v3.1.1

          @@ -13,13 +13,23 @@

          React Nativ This is v2 of the React-Native SDK. When migrating from v1.x to v2.x you might encounter a small set of breaking changes. Read the migration guide for a detailed overview of what has changed.

          + +
          Important

          +If you're building Voice AI, LiveKit Agents is the SDK for code-first realtime voice agents. STT, LLM, TTS, turn detection, expressive speech, keyterm accuracy, tool usage, and telephony all come bundled in the framework. It's available in both Python and Node.js.

          +
          # agent.py
          from livekit import agents
          from livekit.agents import Agent, AgentServer, AgentSession, STTContextOptions, TurnHandlingOptions, inference

          server = AgentServer()


          @server.rtc_session(agent_name="my-agent")
          async def my_agent(ctx: agents.JobContext):
          session = AgentSession(
          stt=inference.STT(model="deepgram/nova-3", language="multi"),
          llm=inference.LLM(model="google/gemma-4-31b-it"),
          tts=inference.TTS(model="inworld/inworld-tts-2", voice="Ashley"),
          turn_handling=TurnHandlingOptions(turn_detection=inference.TurnDetector()),
          stt_context_options=STTContextOptions(keyterms=["LiveKit", "Acme Corp"]),
          expressive=True,
          )
          await session.start(room=ctx.room, agent=Agent(instructions="You are a helpful voice AI assistant."))
          await session.generate_reply(instructions="Greet the user and offer your assistance.")


          if __name__ == "__main__":
          agents.cli.run_app(server) +
          + +

          Models come from LiveKit Inference with no per-provider API keys, and LiveKit Cloud handles deployment and observability. Visit the docs for more info at docs.livekit.io/agents.

          +

          Using a coding agent? Install the LiveKit skill with npx skills add livekit/agent-skills and add the docs MCP at https://docs.livekit.io/mcp/ (see coding agent support).

          +
          + -
          npm install @livekit/react-native @livekit/react-native-webrtc livekit-client
          +
          npm install @livekit/react-native @livekit/react-native-webrtc livekit-client
           
          -
          yarn add @livekit/react-native @livekit/react-native-webrtc livekit-client
          +
          yarn add @livekit/react-native @livekit/react-native-webrtc livekit-client
           

          This library depends on @livekit/react-native-webrtc, which has additional installation instructions found here:

          @@ -30,7 +40,7 @@

          This package depends on the LiveKitWebRTC pod, which is published to the livekit/podspecs spec repo and the CocoaPods trunk. The CocoaPods trunk stops accepting new pods on December 2, 2026, so later LiveKitWebRTC versions will only be available from livekit/podspecs. Add both sources to the top of your ios/Podfile:

          -
          source 'https://github.com/livekit/podspecs.git'
          source 'https://cdn.cocoapods.org/' +
          source 'https://github.com/livekit/podspecs.git'
          source 'https://cdn.cocoapods.org/'

          Keep the cdn.cocoapods.org line: once a Podfile lists any source, CocoaPods stops using @@ -43,14 +53,14 @@

          +
          diff --git a/docs/interfaces/BarVisualizerProps.html b/docs/interfaces/BarVisualizerProps.html index b8e4ade6..f18d7f7d 100644 --- a/docs/interfaces/BarVisualizerProps.html +++ b/docs/interfaces/BarVisualizerProps.html @@ -1,9 +1,9 @@ -BarVisualizerProps | LiveKit React Native Client SDK - v3.1.0

          Interface BarVisualizerPropsBeta

          interface BarVisualizerProps {
              barCount?: number;
              options?: BarVisualizerOptions;
              state?: AgentState;
              style?: ViewStyle;
              trackRef?: TrackReferenceOrPlaceholder;
          }
          Index

          Properties

          barCount? +BarVisualizerProps | LiveKit React Native Client SDK - v3.1.1

          Interface BarVisualizerPropsBeta

          interface BarVisualizerProps {
              barCount?: number;
              options?: BarVisualizerOptions;
              state?: AgentState;
              style?: ViewStyle;
              trackRef?: TrackReferenceOrPlaceholder;
          }
          Index

          Properties

          barCount?: number

          Number of bars that show up in the visualizer

          -
          state?: AgentState

          If set, the visualizer will transition between different voice assistant states

          -
          style?: ViewStyle

          Custom React Native styles for the container.

          -
          trackRef?: TrackReferenceOrPlaceholder
          +
          state?: AgentState

          If set, the visualizer will transition between different voice assistant states

          +
          style?: ViewStyle

          Custom React Native styles for the container.

          +
          trackRef?: TrackReferenceOrPlaceholder
          diff --git a/docs/interfaces/LiveKitRoomProps.html b/docs/interfaces/LiveKitRoomProps.html index a7df77de..d1ad39b8 100644 --- a/docs/interfaces/LiveKitRoomProps.html +++ b/docs/interfaces/LiveKitRoomProps.html @@ -1,4 +1,4 @@ -LiveKitRoomProps | LiveKit React Native Client SDK - v3.1.0

          Interface LiveKitRoomProps

          interface LiveKitRoomProps {
              audio?: boolean | AudioCaptureOptions;
              connect?: boolean;
              connectOptions?: RoomConnectOptions;
              featureFlags?: FeatureFlags;
              onConnected?: () => void;
              onDisconnected?: () => void;
              onEncryptionError?: (error: Error) => void;
              onError?: (error: Error) => void;
              onMediaDeviceFailure?: (failure?: MediaDeviceFailure) => void;
              options?: RoomOptions;
              room?: Room;
              screen?: boolean | ScreenShareCaptureOptions;
              serverUrl: string | undefined;
              simulateParticipants?: number;
              token: string | undefined;
              video?: boolean | VideoCaptureOptions;
          }
          Index

          Properties

          audio? +LiveKitRoomProps | LiveKit React Native Client SDK - v3.1.1

          Interface LiveKitRoomProps

          interface LiveKitRoomProps {
              audio?: boolean | AudioCaptureOptions;
              connect?: boolean;
              connectOptions?: RoomConnectOptions;
              featureFlags?: FeatureFlags;
              onConnected?: () => void;
              onDisconnected?: () => void;
              onEncryptionError?: (error: Error) => void;
              onError?: (error: Error) => void;
              onMediaDeviceFailure?: (failure?: MediaDeviceFailure) => void;
              options?: RoomOptions;
              room?: Room;
              screen?: boolean | ScreenShareCaptureOptions;
              serverUrl: string | undefined;
              simulateParticipants?: number;
              token: string | undefined;
              video?: boolean | VideoCaptureOptions;
          }
          Index

          Properties

          Properties

          audio?: boolean | AudioCaptureOptions

          Publish audio immediately after connecting to your LiveKit room.

          connect?: boolean

          If set to true a connection to LiveKit room is initiated.

          +
          connect?: boolean

          If set to true a connection to LiveKit room is initiated.

          true

          -
          connectOptions?: RoomConnectOptions

          Define options how to connect to the LiveKit server.

          +
          connectOptions?: RoomConnectOptions

          Define options how to connect to the LiveKit server.

          featureFlags?: FeatureFlags
          onConnected?: () => void
          onDisconnected?: () => void
          onEncryptionError?: (error: Error) => void
          onError?: (error: Error) => void
          onMediaDeviceFailure?: (failure?: MediaDeviceFailure) => void
          options?: RoomOptions

          Options for when creating a new room. +

          featureFlags?: FeatureFlags
          onConnected?: () => void
          onDisconnected?: () => void
          onEncryptionError?: (error: Error) => void
          onError?: (error: Error) => void
          onMediaDeviceFailure?: (failure?: MediaDeviceFailure) => void
          options?: RoomOptions

          Options for when creating a new room. When you pass your own room instance to this component, these options have no effect. Instead, set the options directly in the room instance.

          room?: Room

          Optional room instance. +

          room?: Room

          Optional room instance. By passing your own room instance you overwrite the options parameter, make sure to set the options directly on the room instance itself.

          -
          screen?: boolean | ScreenShareCaptureOptions

          Publish screen share immediately after connecting to your LiveKit room.

          +
          screen?: boolean | ScreenShareCaptureOptions

          Publish screen share immediately after connecting to your LiveKit room.

          serverUrl: string | undefined

          URL to the LiveKit server. +

          serverUrl: string | undefined

          URL to the LiveKit server. For example: wss://<domain>.livekit.cloud To simplify the implementation, undefined is also accepted as an intermediate value, but only with a valid string url can the connection be established.

          -
          simulateParticipants?: number
          token: string | undefined

          A user specific access token for a client to authenticate to the room. +

          simulateParticipants?: number
          token: string | undefined

          A user specific access token for a client to authenticate to the room. This token is necessary to establish a connection to the room. To simplify the implementation, undefined is also accepted as an intermediate value, but only with a valid string token can the connection be established.

          video?: boolean | VideoCaptureOptions

          Publish video immediately after connecting to your LiveKit room.

          +
          video?: boolean | VideoCaptureOptions

          Publish video immediately after connecting to your LiveKit room.

          +
          diff --git a/docs/interfaces/MultiBandTrackVolumeOptions.html b/docs/interfaces/MultiBandTrackVolumeOptions.html index 2cdeebc8..39180b4d 100644 --- a/docs/interfaces/MultiBandTrackVolumeOptions.html +++ b/docs/interfaces/MultiBandTrackVolumeOptions.html @@ -1,10 +1,10 @@ -MultiBandTrackVolumeOptions | LiveKit React Native Client SDK - v3.1.0

          Interface MultiBandTrackVolumeOptionsAlpha

          Interface for configuring options for the useMultibandTrackVolume hook.

          -
          interface MultiBandTrackVolumeOptions {
              bands?: number;
              maxFrequency?: number;
              minFrequency?: number;
              updateInterval?: number;
          }
          Index

          Properties

          bands? +MultiBandTrackVolumeOptions | LiveKit React Native Client SDK - v3.1.1

          Interface MultiBandTrackVolumeOptionsAlpha

          Interface for configuring options for the useMultibandTrackVolume hook.

          +
          interface MultiBandTrackVolumeOptions {
              bands?: number;
              maxFrequency?: number;
              minFrequency?: number;
              updateInterval?: number;
          }
          Index

          Properties

          bands?: number

          the number of bands to split the audio into

          -
          maxFrequency?: number

          cut off frequency on the higher end

          -
          minFrequency?: number

          cut off frequency on the lower end

          -
          updateInterval?: number

          update should run every x ms

          -
          +
          maxFrequency?: number

          cut off frequency on the higher end

          +
          minFrequency?: number

          cut off frequency on the lower end

          +
          updateInterval?: number

          update should run every x ms

          +
          diff --git a/docs/interfaces/ParticipantState.html b/docs/interfaces/ParticipantState.html index 66e070d2..06d1ac1c 100644 --- a/docs/interfaces/ParticipantState.html +++ b/docs/interfaces/ParticipantState.html @@ -1,5 +1,5 @@ -ParticipantState | LiveKit React Native Client SDK - v3.1.0

          Interface ParticipantState

          use useRemoteParticipant or useLocalParticipant instead

          -
          interface ParticipantState {
              cameraPublication?: TrackPublication;
              connectionQuality: ConnectionQuality;
              isLocal: boolean;
              isSpeaking: boolean;
              metadata?: string;
              microphonePublication?: TrackPublication;
              publications: TrackPublication[];
              screenSharePublication?: TrackPublication;
              subscribedTracks: TrackPublication[];
          }
          Index

          Properties

          cameraPublication? +ParticipantState | LiveKit React Native Client SDK - v3.1.1

          Interface ParticipantState

          use useRemoteParticipant or useLocalParticipant instead

          +
          interface ParticipantState {
              cameraPublication?: TrackPublication;
              connectionQuality: ConnectionQuality;
              isLocal: boolean;
              isSpeaking: boolean;
              metadata?: string;
              microphonePublication?: TrackPublication;
              publications: TrackPublication[];
              screenSharePublication?: TrackPublication;
              subscribedTracks: TrackPublication[];
          }
          Index

          Properties

          cameraPublication?: TrackPublication
          connectionQuality: ConnectionQuality
          isLocal: boolean
          isSpeaking: boolean
          metadata?: string
          microphonePublication?: TrackPublication
          publications: TrackPublication[]
          screenSharePublication?: TrackPublication
          subscribedTracks: TrackPublication[]
          +

          Properties

          cameraPublication?: TrackPublication
          connectionQuality: ConnectionQuality
          isLocal: boolean
          isSpeaking: boolean
          metadata?: string
          microphonePublication?: TrackPublication
          publications: TrackPublication[]
          screenSharePublication?: TrackPublication
          subscribedTracks: TrackPublication[]
          diff --git a/docs/interfaces/RNE2EEManagerState.html b/docs/interfaces/RNE2EEManagerState.html index d82d51d2..20664016 100644 --- a/docs/interfaces/RNE2EEManagerState.html +++ b/docs/interfaces/RNE2EEManagerState.html @@ -1,3 +1,3 @@ -RNE2EEManagerState | LiveKit React Native Client SDK - v3.1.0

          Interface RNE2EEManagerState

          interface RNE2EEManagerState {
              e2eeManager: BaseE2EEManager;
              keyProvider: RNKeyProvider;
          }
          Index

          Properties

          e2eeManager +RNE2EEManagerState | LiveKit React Native Client SDK - v3.1.1

          Interface RNE2EEManagerState

          interface RNE2EEManagerState {
              e2eeManager: BaseE2EEManager;
              keyProvider: RNKeyProvider;
          }
          Index

          Properties

          e2eeManager: BaseE2EEManager
          keyProvider: RNKeyProvider
          +

          Properties

          e2eeManager: BaseE2EEManager
          keyProvider: RNKeyProvider
          diff --git a/docs/interfaces/RegisterGlobalsOptions.html b/docs/interfaces/RegisterGlobalsOptions.html index 9be0fe22..7edd5354 100644 --- a/docs/interfaces/RegisterGlobalsOptions.html +++ b/docs/interfaces/RegisterGlobalsOptions.html @@ -1,8 +1,8 @@ -RegisterGlobalsOptions | LiveKit React Native Client SDK - v3.1.0

          Interface RegisterGlobalsOptions

          interface RegisterGlobalsOptions {
              autoConfigureAudioSession?: boolean;
          }
          Index

          Properties

          autoConfigureAudioSession? +RegisterGlobalsOptions | LiveKit React Native Client SDK - v3.1.1

          Interface RegisterGlobalsOptions

          interface RegisterGlobalsOptions {
              autoConfigureAudioSession?: boolean;
          }
          Index

          Properties

          autoConfigureAudioSession?: boolean

          Automatically configure and activate the iOS audio session based on audio engine lifecycle events. Has no effect on non-Apple platforms.

          -
          true
          +
          true
           
          -
          +
          diff --git a/docs/interfaces/RoomOptions.html b/docs/interfaces/RoomOptions.html index 8ae403e3..1ed3abf5 100644 --- a/docs/interfaces/RoomOptions.html +++ b/docs/interfaces/RoomOptions.html @@ -1,2 +1,2 @@ -RoomOptions | LiveKit React Native Client SDK - v3.1.0

          Interface RoomOptions

          interface RoomOptions {
              sortParticipants?: (participants: Participant[]) => void;
          }
          Index

          Properties

          Properties

          sortParticipants?: (participants: Participant[]) => void
          +RoomOptions | LiveKit React Native Client SDK - v3.1.1

          Interface RoomOptions

          interface RoomOptions {
              sortParticipants?: (participants: Participant[]) => void;
          }
          Index

          Properties

          Properties

          sortParticipants?: (participants: Participant[]) => void
          diff --git a/docs/interfaces/RoomState.html b/docs/interfaces/RoomState.html index cbeede60..9078db72 100644 --- a/docs/interfaces/RoomState.html +++ b/docs/interfaces/RoomState.html @@ -1,5 +1,5 @@ -RoomState | LiveKit React Native Client SDK - v3.1.0

          Interface RoomState

          interface RoomState {
              audioTracks: AudioTrack[];
              error?: Error;
              participants: Participant[];
              room?: Room;
          }
          Index

          Properties

          audioTracks +RoomState | LiveKit React Native Client SDK - v3.1.1

          Interface RoomState

          interface RoomState {
              audioTracks: AudioTrack[];
              error?: Error;
              participants: Participant[];
              room?: Room;
          }
          Index

          Properties

          audioTracks: AudioTrack[]
          error?: Error
          participants: Participant[]
          room?: Room
          +

          Properties

          audioTracks: AudioTrack[]
          error?: Error
          participants: Participant[]
          room?: Room
          diff --git a/docs/modules.html b/docs/modules.html index 26b8a08a..3da1ada4 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1 +1 @@ -LiveKit React Native Client SDK - v3.1.0
          +LiveKit React Native Client SDK - v3.1.1
          diff --git a/docs/types/AndroidAudioTypeOptions.html b/docs/types/AndroidAudioTypeOptions.html index 49ab85b3..6ee8f862 100644 --- a/docs/types/AndroidAudioTypeOptions.html +++ b/docs/types/AndroidAudioTypeOptions.html @@ -1,4 +1,4 @@ -AndroidAudioTypeOptions | LiveKit React Native Client SDK - v3.1.0

          Type Alias AndroidAudioTypeOptions

          type AndroidAudioTypeOptions = {
              audioAttributesContentType?:
                  | "movie"
                  | "music"
                  | "sonification"
                  | "speech"
                  | "unknown";
              audioAttributesUsageType?: | "alarm"
              | "assistanceAccessibility"
              | "assistanceNavigationGuidance"
              | "assistanceSonification"
              | "assistant"
              | "game"
              | "media"
              | "notification"
              | "notificationEvent"
              | "notificationRingtone"
              | "unknown"
              | "voiceCommunication"
              | "voiceCommunicationSignalling";
              audioFocusMode?: | "gain"
              | "gainTransient"
              | "gainTransientExclusive"
              | "gainTransientMayDuck";
              audioMode?: | "normal"
              | "callScreening"
              | "inCall"
              | "inCommunication"
              | "ringtone";
              audioStreamType?: | "accessibility"
              | "alarm"
              | "dtmf"
              | "music"
              | "notification"
              | "ring"
              | "system"
              | "voiceCall";
              forceHandleAudioRouting?: boolean;
              manageAudioFocus?: boolean;
          }
          Index

          Properties

          audioAttributesContentType? +AndroidAudioTypeOptions | LiveKit React Native Client SDK - v3.1.1

          Type Alias AndroidAudioTypeOptions

          type AndroidAudioTypeOptions = {
              audioAttributesContentType?:
                  | "movie"
                  | "music"
                  | "sonification"
                  | "speech"
                  | "unknown";
              audioAttributesUsageType?: | "alarm"
              | "assistanceAccessibility"
              | "assistanceNavigationGuidance"
              | "assistanceSonification"
              | "assistant"
              | "game"
              | "media"
              | "notification"
              | "notificationEvent"
              | "notificationRingtone"
              | "unknown"
              | "voiceCommunication"
              | "voiceCommunicationSignalling";
              audioFocusMode?: | "gain"
              | "gainTransient"
              | "gainTransientExclusive"
              | "gainTransientMayDuck";
              audioMode?: | "normal"
              | "callScreening"
              | "inCall"
              | "inCommunication"
              | "ringtone";
              audioStreamType?: | "accessibility"
              | "alarm"
              | "dtmf"
              | "music"
              | "notification"
              | "ring"
              | "system"
              | "voiceCall";
              forceHandleAudioRouting?: boolean;
              manageAudioFocus?: boolean;
          }
          Index

          Properties

          audioAttributesContentType?:
              | "movie"
              | "music"
              | "sonification"
              | "speech"
              | "unknown"

          Corresponds to Android's AndroidAttributes content type.

          Defaults to 'speech'.

          See also https://developer.android.com/reference/android/media/AudioAttributes

          -
          audioAttributesUsageType?:
              | "alarm"
              | "assistanceAccessibility"
              | "assistanceNavigationGuidance"
              | "assistanceSonification"
              | "assistant"
              | "game"
              | "media"
              | "notification"
              | "notificationEvent"
              | "notificationRingtone"
              | "unknown"
              | "voiceCommunication"
              | "voiceCommunicationSignalling"

          Corresponds to Android's AudioAttributes usage type.

          +
          audioAttributesUsageType?:
              | "alarm"
              | "assistanceAccessibility"
              | "assistanceNavigationGuidance"
              | "assistanceSonification"
              | "assistant"
              | "game"
              | "media"
              | "notification"
              | "notificationEvent"
              | "notificationRingtone"
              | "unknown"
              | "voiceCommunication"
              | "voiceCommunicationSignalling"

          Corresponds to Android's AudioAttributes usage type.

          Defaults to 'voiceCommunication'.

          See also https://developer.android.com/reference/android/media/AudioAttributes

          -
          audioFocusMode?:
              | "gain"
              | "gainTransient"
              | "gainTransientExclusive"
              | "gainTransientMayDuck"

          Corresponds to the duration hint when requesting audio focus.

          +
          audioFocusMode?:
              | "gain"
              | "gainTransient"
              | "gainTransientExclusive"
              | "gainTransientMayDuck"

          Corresponds to the duration hint when requesting audio focus.

          Defaults to 'gain'.

          See also https://developer.android.com/reference/android/media/AudioManager#AUDIOFOCUS_GAIN

          -
          audioMode?:
              | "normal"
              | "callScreening"
              | "inCall"
              | "inCommunication"
              | "ringtone"
          audioMode?:
              | "normal"
              | "callScreening"
              | "inCall"
              | "inCommunication"
              | "ringtone"
          audioStreamType?:
              | "accessibility"
              | "alarm"
              | "dtmf"
              | "music"
              | "notification"
              | "ring"
              | "system"
              | "voiceCall"

          Corresponds to the stream type when requesting audio focus. Used on pre-O devices.

          +
          audioStreamType?:
              | "accessibility"
              | "alarm"
              | "dtmf"
              | "music"
              | "notification"
              | "ring"
              | "system"
              | "voiceCall"

          Corresponds to the stream type when requesting audio focus. Used on pre-O devices.

          Defaults to 'voiceCall'

          See also https://developer.android.com/reference/android/media/AudioManager#STREAM_VOICE_CALL

          -
          forceHandleAudioRouting?: boolean

          On certain Android devices, audio routing does not function properly and +

          forceHandleAudioRouting?: boolean

          On certain Android devices, audio routing does not function properly and bluetooth microphones will not work unless audio mode is set to inCommunication or inCall. Audio routing is turned off those cases.

          If this set to true, will attempt to do audio routing regardless of audio mode.

          Defaults to false.

          -
          manageAudioFocus?: boolean

          Whether LiveKit should handle managing the audio focus or not.

          +
          manageAudioFocus?: boolean

          Whether LiveKit should handle managing the audio focus or not.

          Defaults to true.

          -
          +
          diff --git a/docs/types/AppleAudioCategory.html b/docs/types/AppleAudioCategory.html index 8290f1e6..64087511 100644 --- a/docs/types/AppleAudioCategory.html +++ b/docs/types/AppleAudioCategory.html @@ -1 +1 @@ -AppleAudioCategory | LiveKit React Native Client SDK - v3.1.0

          Type Alias AppleAudioCategory

          AppleAudioCategory:
              | "soloAmbient"
              | "playback"
              | "record"
              | "playAndRecord"
              | "multiRoute"
          +AppleAudioCategory | LiveKit React Native Client SDK - v3.1.1

          Type Alias AppleAudioCategory

          AppleAudioCategory:
              | "soloAmbient"
              | "playback"
              | "record"
              | "playAndRecord"
              | "multiRoute"
          diff --git a/docs/types/AppleAudioCategoryOption.html b/docs/types/AppleAudioCategoryOption.html index 6421aa8f..f3003368 100644 --- a/docs/types/AppleAudioCategoryOption.html +++ b/docs/types/AppleAudioCategoryOption.html @@ -1 +1 @@ -AppleAudioCategoryOption | LiveKit React Native Client SDK - v3.1.0

          Type Alias AppleAudioCategoryOption

          AppleAudioCategoryOption:
              | "mixWithOthers"
              | "duckOthers"
              | "interruptSpokenAudioAndMixWithOthers"
              | "allowBluetooth"
              | "allowBluetoothA2DP"
              | "allowAirPlay"
              | "defaultToSpeaker"
          +AppleAudioCategoryOption | LiveKit React Native Client SDK - v3.1.1

          Type Alias AppleAudioCategoryOption

          AppleAudioCategoryOption:
              | "mixWithOthers"
              | "duckOthers"
              | "interruptSpokenAudioAndMixWithOthers"
              | "allowBluetooth"
              | "allowBluetoothA2DP"
              | "allowAirPlay"
              | "defaultToSpeaker"
          diff --git a/docs/types/AppleAudioConfiguration.html b/docs/types/AppleAudioConfiguration.html index f92a5f35..588f2756 100644 --- a/docs/types/AppleAudioConfiguration.html +++ b/docs/types/AppleAudioConfiguration.html @@ -1,4 +1,4 @@ -AppleAudioConfiguration | LiveKit React Native Client SDK - v3.1.0

          Type Alias AppleAudioConfiguration

          type AppleAudioConfiguration = {
              audioCategory?: AppleAudioCategory;
              audioCategoryOptions?: AppleAudioCategoryOption[];
              audioMode?: AppleAudioMode;
          }
          Index

          Properties

          audioCategory? +AppleAudioConfiguration | LiveKit React Native Client SDK - v3.1.1

          Type Alias AppleAudioConfiguration

          type AppleAudioConfiguration = {
              audioCategory?: AppleAudioCategory;
              audioCategoryOptions?: AppleAudioCategoryOption[];
              audioMode?: AppleAudioMode;
          }
          Index

          Properties

          audioCategory?: AppleAudioCategory
          audioCategoryOptions?: AppleAudioCategoryOption[]
          audioMode?: AppleAudioMode
          +

          Properties

          audioCategory?: AppleAudioCategory
          audioCategoryOptions?: AppleAudioCategoryOption[]
          audioMode?: AppleAudioMode
          diff --git a/docs/types/AppleAudioMode.html b/docs/types/AppleAudioMode.html index e86822d5..a3d48c39 100644 --- a/docs/types/AppleAudioMode.html +++ b/docs/types/AppleAudioMode.html @@ -1 +1 @@ -AppleAudioMode | LiveKit React Native Client SDK - v3.1.0

          Type Alias AppleAudioMode

          AppleAudioMode:
              | "default"
              | "gameChat"
              | "measurement"
              | "moviePlayback"
              | "spokenAudio"
              | "videoChat"
              | "videoRecording"
              | "voiceChat"
              | "voicePrompt"
          +AppleAudioMode | LiveKit React Native Client SDK - v3.1.1

          Type Alias AppleAudioMode

          AppleAudioMode:
              | "default"
              | "gameChat"
              | "measurement"
              | "moviePlayback"
              | "spokenAudio"
              | "videoChat"
              | "videoRecording"
              | "voiceChat"
              | "voicePrompt"
          diff --git a/docs/types/AudioConfiguration.html b/docs/types/AudioConfiguration.html index 817e056a..9b5028c1 100644 --- a/docs/types/AudioConfiguration.html +++ b/docs/types/AudioConfiguration.html @@ -1,4 +1,4 @@ -AudioConfiguration | LiveKit React Native Client SDK - v3.1.0

          Type Alias AudioConfiguration

          Configuration for the underlying AudioSession.

          +AudioConfiguration | LiveKit React Native Client SDK - v3.1.1

          Type Alias AudioConfiguration

          Configuration for the underlying AudioSession.


          Android specific options:

            @@ -27,6 +27,6 @@

            By default, this is set to "speaker"

          -
          type AudioConfiguration = {
              android?: {
                  audioTypeOptions: AndroidAudioTypeOptions;
                  preferredOutputList?: ("speaker" | "earpiece" | "headset" | "bluetooth")[];
              };
              ios?: { defaultOutput?: "speaker"
              | "earpiece" };
          }
          Index

          Properties

          type AudioConfiguration = {
              android?: {
                  audioTypeOptions: AndroidAudioTypeOptions;
                  preferredOutputList?: ("speaker" | "earpiece" | "headset" | "bluetooth")[];
              };
              ios?: { defaultOutput?: "speaker"
              | "earpiece" };
          }
          Index

          Properties

          Properties

          android?: {
              audioTypeOptions: AndroidAudioTypeOptions;
              preferredOutputList?: ("speaker" | "earpiece" | "headset" | "bluetooth")[];
          }
          ios?: { defaultOutput?: "speaker" | "earpiece" }
          +

          Properties

          android?: {
              audioTypeOptions: AndroidAudioTypeOptions;
              preferredOutputList?: ("speaker" | "earpiece" | "headset" | "bluetooth")[];
          }
          ios?: { defaultOutput?: "speaker" | "earpiece" }
          diff --git a/docs/types/AudioEngineConfigurationState.html b/docs/types/AudioEngineConfigurationState.html index c376299d..621e2b4f 100644 --- a/docs/types/AudioEngineConfigurationState.html +++ b/docs/types/AudioEngineConfigurationState.html @@ -1,9 +1,9 @@ -AudioEngineConfigurationState | LiveKit React Native Client SDK - v3.1.0

          Type Alias AudioEngineConfigurationState

          type AudioEngineConfigurationState = {
              isPlayoutEnabled: boolean;
              isRecordingEnabled: boolean;
              isVoiceProcessingEnabled: boolean;
              preferSpeakerOutput: boolean;
          }
          Index

          Properties

          isPlayoutEnabled +AudioEngineConfigurationState | LiveKit React Native Client SDK - v3.1.1

          Type Alias AudioEngineConfigurationState

          type AudioEngineConfigurationState = {
              isPlayoutEnabled: boolean;
              isRecordingEnabled: boolean;
              isVoiceProcessingEnabled: boolean;
              preferSpeakerOutput: boolean;
          }
          Index

          Properties

          isPlayoutEnabled: boolean
          isRecordingEnabled: boolean
          isVoiceProcessingEnabled: boolean

          Whether Apple Voice Processing I/O is running for this engine state. The +

          Properties

          isPlayoutEnabled: boolean
          isRecordingEnabled: boolean
          isVoiceProcessingEnabled: boolean

          Whether Apple Voice Processing I/O is running for this engine state. The voiceChat/videoChat modes engage iOS's call-tuned speaker gain, which only VPIO compensates for, so a configuration derived for recording should account for this.

          -
          preferSpeakerOutput: boolean
          +
          preferSpeakerOutput: boolean
          diff --git a/docs/types/AudioTrackState.html b/docs/types/AudioTrackState.html index 29510e44..475933d8 100644 --- a/docs/types/AudioTrackState.html +++ b/docs/types/AudioTrackState.html @@ -1,6 +1,6 @@ -AudioTrackState | LiveKit React Native Client SDK - v3.1.0

          Type Alias AudioTrackState

          AudioTrackState: "none" | "remoteOnly" | "localOnly" | "localAndRemote"

          Retained only for the legacy useIOSAudioManagement hook and +AudioTrackState | LiveKit React Native Client SDK - v3.1.1

          Type Alias AudioTrackState

          AudioTrackState: "none" | "remoteOnly" | "localOnly" | "localAndRemote"

          Retained only for the legacy useIOSAudioManagement hook and getDefaultAppleAudioConfigurationForMode. New code should use setupIOSAudioManagement (optionally with an IOSAudioSessionPolicy). That API is driven by playout/recording engine state, which has no direct AudioTrackState equivalent.

          -
          +
          diff --git a/docs/types/BarVisualizerOptions.html b/docs/types/BarVisualizerOptions.html index 94a350b0..cf886e29 100644 --- a/docs/types/BarVisualizerOptions.html +++ b/docs/types/BarVisualizerOptions.html @@ -1,8 +1,8 @@ -BarVisualizerOptions | LiveKit React Native Client SDK - v3.1.0

          Type Alias BarVisualizerOptions

          type BarVisualizerOptions = {
              barBorderRadius?: number;
              barColor?: ColorValue;
              barWidth?: DimensionValue;
              maxHeight?: number;
              minHeight?: number;
          }
          Index

          Properties

          barBorderRadius? +BarVisualizerOptions | LiveKit React Native Client SDK - v3.1.1

          Type Alias BarVisualizerOptions

          type BarVisualizerOptions = {
              barBorderRadius?: number;
              barColor?: ColorValue;
              barWidth?: DimensionValue;
              maxHeight?: number;
              minHeight?: number;
          }
          Index

          Properties

          barBorderRadius?: number
          barColor?: ColorValue
          barWidth?: DimensionValue
          maxHeight?: number

          decimal values from 0 to 1

          -
          minHeight?: number

          decimal values from 0 to 1

          -
          +

          Properties

          barBorderRadius?: number
          barColor?: ColorValue
          barWidth?: DimensionValue
          maxHeight?: number

          decimal values from 0 to 1

          +
          minHeight?: number

          decimal values from 0 to 1

          +
          diff --git a/docs/types/IOSAudioSessionPolicy.html b/docs/types/IOSAudioSessionPolicy.html index 977693dc..f0213018 100644 --- a/docs/types/IOSAudioSessionPolicy.html +++ b/docs/types/IOSAudioSessionPolicy.html @@ -1,15 +1,15 @@ -IOSAudioSessionPolicy | LiveKit React Native Client SDK - v3.1.0

          Type Alias IOSAudioSessionPolicy

          Static recording/playout policy for setupIOSAudioManagement.

          -
          Index

          Properties

          deactivateOnStop? +IOSAudioSessionPolicy | LiveKit React Native Client SDK - v3.1.1

          Type Alias IOSAudioSessionPolicy

          Static recording/playout policy for setupIOSAudioManagement.

          +
          Index

          Properties

          deactivateOnStop?: boolean

          Whether to deactivate the audio session when both playout and recording are disabled. Defaults to true.

          -
          recordingWithoutVoiceProcessing?: AppleAudioConfiguration

          Recording configuration to apply while Apple Voice Processing I/O is off, +

          recordingWithoutVoiceProcessing?: AppleAudioConfiguration

          Recording configuration to apply while Apple Voice Processing I/O is off, for example after AudioDeviceModule.setVoiceProcessingEnabled(false). A policy whose recording config uses voiceChat/videoChat should set a default-mode variant here, otherwise remote audio plays back noticeably quieter without VPIO to compensate for the call-tuned gain. Defaults to recording, so a policy that does not set this behaves exactly as before.

          -
          +
          diff --git a/docs/types/LogLevel.html b/docs/types/LogLevel.html index 162730ea..323fc3a2 100644 --- a/docs/types/LogLevel.html +++ b/docs/types/LogLevel.html @@ -1 +1 @@ -LogLevel | LiveKit React Native Client SDK - v3.1.0

          Type Alias LogLevel

          LogLevel: Parameters<typeof setClientSdkLogLevel>[0]
          +LogLevel | LiveKit React Native Client SDK - v3.1.1

          Type Alias LogLevel

          LogLevel: Parameters<typeof setClientSdkLogLevel>[0]
          diff --git a/docs/types/OnConfigureNativeAudio.html b/docs/types/OnConfigureNativeAudio.html index 81bd8c8e..85ed3551 100644 --- a/docs/types/OnConfigureNativeAudio.html +++ b/docs/types/OnConfigureNativeAudio.html @@ -1,3 +1,3 @@ -OnConfigureNativeAudio | LiveKit React Native Client SDK - v3.1.0

          Type Alias OnConfigureNativeAudio

          OnConfigureNativeAudio: (
              configurationState: AudioEngineConfigurationState,
          ) => AppleAudioConfiguration

          Type Declaration

          Unsafe. Prefer IOSAudioSessionPolicy or the default +OnConfigureNativeAudio | LiveKit React Native Client SDK - v3.1.1

          Type Alias OnConfigureNativeAudio

          OnConfigureNativeAudio: (
              configurationState: AudioEngineConfigurationState,
          ) => AppleAudioConfiguration

          Type Declaration

          Unsafe. Prefer IOSAudioSessionPolicy or the default native path. See setupIOSAudioManagement.

          -
          +
          diff --git a/docs/types/Props.html b/docs/types/Props.html index 47f1c9a4..1cf6f679 100644 --- a/docs/types/Props.html +++ b/docs/types/Props.html @@ -1,7 +1,7 @@ -Props | LiveKit React Native Client SDK - v3.1.0

          Type Alias Props

          use VideoTrack and VideoTrackProps instead.

          -
          type Props = {
              mirror?: boolean;
              objectFit?: "cover" | "contain";
              style?: ViewStyle;
              videoTrack?: VideoTrack;
              zOrder?: number;
          }
          Index

          Properties

          mirror? +Props | LiveKit React Native Client SDK - v3.1.1

          Type Alias Props

          use VideoTrack and VideoTrackProps instead.

          +
          type Props = {
              mirror?: boolean;
              objectFit?: "cover" | "contain";
              style?: ViewStyle;
              videoTrack?: VideoTrack;
              zOrder?: number;
          }
          Index

          Properties

          mirror?: boolean
          objectFit?: "cover" | "contain"
          style?: ViewStyle
          videoTrack?: VideoTrack
          zOrder?: number
          +

          Properties

          mirror?: boolean
          objectFit?: "cover" | "contain"
          style?: ViewStyle
          videoTrack?: VideoTrack
          zOrder?: number
          diff --git a/docs/types/RNKeyProviderOptions.html b/docs/types/RNKeyProviderOptions.html index 7688d326..51a4771c 100644 --- a/docs/types/RNKeyProviderOptions.html +++ b/docs/types/RNKeyProviderOptions.html @@ -1,2 +1,2 @@ -RNKeyProviderOptions | LiveKit React Native Client SDK - v3.1.0

          Type Alias RNKeyProviderOptions

          RNKeyProviderOptions: KeyProviderOptions & {
              uncryptedMagicBytes?: string | Uint8Array;
          }

          Options for construction an RNKeyProvider

          -
          +RNKeyProviderOptions | LiveKit React Native Client SDK - v3.1.1

          Type Alias RNKeyProviderOptions

          RNKeyProviderOptions: KeyProviderOptions & {
              uncryptedMagicBytes?: string | Uint8Array;
          }

          Options for construction an RNKeyProvider

          +
          diff --git a/docs/types/SetLogLevelOptions.html b/docs/types/SetLogLevelOptions.html index ddadbcc8..7213291f 100644 --- a/docs/types/SetLogLevelOptions.html +++ b/docs/types/SetLogLevelOptions.html @@ -1,2 +1,2 @@ -SetLogLevelOptions | LiveKit React Native Client SDK - v3.1.0

          Type Alias SetLogLevelOptions

          type SetLogLevelOptions = {
              liveKitClientLogLevel?: LogLevel;
          }
          Index

          Properties

          liveKitClientLogLevel?: LogLevel
          +SetLogLevelOptions | LiveKit React Native Client SDK - v3.1.1

          Type Alias SetLogLevelOptions

          type SetLogLevelOptions = {
              liveKitClientLogLevel?: LogLevel;
          }
          Index

          Properties

          liveKitClientLogLevel?: LogLevel
          diff --git a/docs/types/UseRNE2EEManagerOptions.html b/docs/types/UseRNE2EEManagerOptions.html index 58bfbb03..484c7fcd 100644 --- a/docs/types/UseRNE2EEManagerOptions.html +++ b/docs/types/UseRNE2EEManagerOptions.html @@ -1,3 +1,3 @@ -UseRNE2EEManagerOptions | LiveKit React Native Client SDK - v3.1.0

          Type Alias UseRNE2EEManagerOptions

          type UseRNE2EEManagerOptions = {
              keyProviderOptions?: RNKeyProviderOptions;
              sharedKey: string | Uint8Array;
          }
          Index

          Properties

          keyProviderOptions? +UseRNE2EEManagerOptions | LiveKit React Native Client SDK - v3.1.1

          Type Alias UseRNE2EEManagerOptions

          type UseRNE2EEManagerOptions = {
              keyProviderOptions?: RNKeyProviderOptions;
              sharedKey: string | Uint8Array;
          }
          Index

          Properties

          keyProviderOptions?: RNKeyProviderOptions
          sharedKey: string | Uint8Array
          +

          Properties

          keyProviderOptions?: RNKeyProviderOptions
          sharedKey: string | Uint8Array
          diff --git a/docs/types/VideoTrackProps.html b/docs/types/VideoTrackProps.html index 7518af00..3fcc405f 100644 --- a/docs/types/VideoTrackProps.html +++ b/docs/types/VideoTrackProps.html @@ -1,5 +1,5 @@ -VideoTrackProps | LiveKit React Native Client SDK - v3.1.0

          Type Alias VideoTrackProps

          Props for the VideoTrack component.

          -
          type VideoTrackProps = {
              iosPIP?: RTCIOSPIPOptions & {
                  fallbackView?: ReactNode;
                  preferredSize: { height: number; width: number };
              };
              mirror?: boolean;
              objectFit?: "cover"
              | "contain";
              style?: ViewStyle;
              trackRef: TrackReference | undefined;
              zOrder?: number;
          }
          Index

          Properties

          iosPIP? +VideoTrackProps | LiveKit React Native Client SDK - v3.1.1

          Type Alias VideoTrackProps

          Props for the VideoTrack component.

          +
          type VideoTrackProps = {
              iosPIP?: RTCIOSPIPOptions & {
                  fallbackView?: ReactNode;
                  preferredSize: { height: number; width: number };
              };
              mirror?: boolean;
              objectFit?: "cover"
              | "contain";
              style?: ViewStyle;
              trackRef: TrackReference | undefined;
              zOrder?: number;
          }
          Index

          Properties

          iosPIP? mirror? objectFit? style? @@ -12,18 +12,18 @@

          iosPIP.startAutomatically can be used to automatically enter PIP when backgrounding the app.

          iosPIP.preferredSize is used to provide a suggested aspect ratio.

          -
          import { startIOSPIP, stopIOSPIP } from '@livekit/react-native-webrtc';

          // Obtain a ref to the view
          const videoRef = useRef<Component>(null);
          const videoView = (
          <VideoTrack
          ref={videoRef}
          iosPIP={{
          enabled: true,
          startAutomatically: true,
          preferredSize: {
          width: 9,
          height: 16,
          },
          }}
          ...
          />
          );

          // Start/stop manually
          startIOSPIP(videoRef);
          stopIOSPIP(videoRef); +
          import { startIOSPIP, stopIOSPIP } from '@livekit/react-native-webrtc';

          // Obtain a ref to the view
          const videoRef = useRef<Component>(null);
          const videoView = (
          <VideoTrack
          ref={videoRef}
          iosPIP={{
          enabled: true,
          startAutomatically: true,
          preferredSize: {
          width: 9,
          height: 16,
          },
          }}
          ...
          />
          );

          // Start/stop manually
          startIOSPIP(videoRef);
          stopIOSPIP(videoRef);
          -
          mirror?: boolean

          Indicates whether the video should be mirrored during rendering. +

          mirror?: boolean

          Indicates whether the video should be mirrored during rendering. This is commonly used for front-facing cameras.

          -
          objectFit?: "cover" | "contain"

          Specifies how the video content should be resized to fit its container. +

          objectFit?: "cover" | "contain"

          Specifies how the video content should be resized to fit its container. 'cover' (default): The video will fill the entire container, potentially cropping the video. 'contain': The entire video will be visible within the container, potentially leaving empty space.

          -
          style?: ViewStyle

          Custom React Native styles for the video container.

          -
          trackRef: TrackReference | undefined

          The track reference to display. This should be a TrackReference object +

          style?: ViewStyle

          Custom React Native styles for the video container.

          +
          trackRef: TrackReference | undefined

          The track reference to display. This should be a TrackReference object or undefined if no track is available.

          -
          zOrder?: number

          Specifies the depth-stacking order of this video view in the stacking space of all video views. +

          zOrder?: number

          Specifies the depth-stacking order of this video view in the stacking space of all video views. A larger zOrder value generally causes the view to cover those with lower values.

          The support for zOrder is platform-dependent and/or implementation-specific. Thus, specifying a value for zOrder is to be @@ -38,4 +38,4 @@ application usually needs a maximum of two zOrder values: 0 for the remote video(s) which appear in the background, and 1 for the local video(s) which appear above the remote video(s).

          -
          +
          diff --git a/docs/variables/AndroidAudioTypePresets.html b/docs/variables/AndroidAudioTypePresets.html index 4095ff4a..816e482f 100644 --- a/docs/variables/AndroidAudioTypePresets.html +++ b/docs/variables/AndroidAudioTypePresets.html @@ -1,3 +1,3 @@ -AndroidAudioTypePresets | LiveKit React Native Client SDK - v3.1.0

          Variable AndroidAudioTypePresetsConst

          AndroidAudioTypePresets: {
              communication: AndroidAudioTypeOptions;
              media: AndroidAudioTypeOptions;
          } = ...

          Type Declaration

          diff --git a/docs/variables/VideoTrack.html b/docs/variables/VideoTrack.html index cb5296c3..980179cc 100644 --- a/docs/variables/VideoTrack.html +++ b/docs/variables/VideoTrack.html @@ -1,5 +1,5 @@ -VideoTrack | LiveKit React Native Client SDK - v3.1.0

          Variable VideoTrackConst

          VideoTrack: ForwardRefExoticComponent<
              VideoTrackProps & RefAttributes<
                  Component<RTCVideoViewProps, {}, any> & ReactNativeElement,
              >,
          > = ...

          VideoTrack component for displaying video tracks in a React Native application. +VideoTrack | LiveKit React Native Client SDK - v3.1.1

          Variable VideoTrackConst

          VideoTrack: ForwardRefExoticComponent<
              VideoTrackProps & RefAttributes<
                  Component<RTCVideoViewProps, {}, any> & ReactNativeElement,
              >,
          > = ...

          VideoTrack component for displaying video tracks in a React Native application. It supports both local and remote video tracks from LiveKit, and handles adaptive streaming for remote tracks.

          See VideoTrackProps for details.

          A React component that renders the given video track.

          -
          +
          diff --git a/docs/variables/log.html b/docs/variables/log.html index be8200ca..6395b126 100644 --- a/docs/variables/log.html +++ b/docs/variables/log.html @@ -1 +1 @@ -log | LiveKit React Native Client SDK - v3.1.0

          Variable logConst

          log: Logger = ...
          +log | LiveKit React Native Client SDK - v3.1.1

          Variable logConst

          log: Logger = ...
          diff --git a/package.json b/package.json index d5d94b2e..471494a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/react-native", - "version": "3.1.0", + "version": "3.1.1", "description": "LiveKit for React Native", "main": "lib/commonjs/index.js", "module": "lib/module/index.js",