MCPcopy Index your code
hub / github.com/apiko-dev/amazon-ivs-react-native-broadcast

github.com/apiko-dev/amazon-ivs-react-native-broadcast @1.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.1 ↗ · + Follow
185 symbols 318 edges 27 files 6 documented · 3% updated 2y ago1.2.1 · 2022-12-12★ 336 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Amazon IVS React Native Broadcast

A React Native wrapper for the Amazon IVS iOS and Android broadcast SDKs.

npm version npm MIT Platform - Android Platform - iOS

⚠️ Note that the current module implementation doesn't support full functionality provided by Amazon IVS iOS and Android broadcast SDKs.

⚠️ Apps using amazon-ivs-react-native-broadcast must target iOS 11 and Android 12 (API 31).


👉 Read more about broadcasting to Amazon IVS.

👉 See Amazon IVS streaming configuration guideline.

Installation

$ yarn add amazon-ivs-react-native-broadcast
# --- or ---
$ npm install amazon-ivs-react-native-broadcast
$ cd ios && pod install && cd ..

IVSBroadcastCameraView component

Allows consumers to stream video from an active phone camera.

⚠️ Requirements

An application must request permission to access the user’s camera and microphone. This isn't specific to the component but required for any application that needs access to the cameras and microphones.

iOS

Add NSCameraUsageDescription and NSMicrophoneUsageDescription keys to the Info.plist file:

...
<key>NSCameraUsageDescription</key>
<string>In order to stream your awesome video, allow access to camera please</string>
<key>NSMicrophoneUsageDescription</key>
<string>In order to stream your awesome audio, allow access to microphone please</string>
...

Android

Add CAMERA and RECORD_AUDIO permissions to the AndroidManifest.xml file:

...
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
...

⚠️ On devices before SDK version 23, the permissions are automatically granted if they appear in the manifest, so check should always result to true and request should always resolve to PermissionsAndroid.RESULTS.GRANTED, however if your app is installed on a device that runs Android 6.0 or higher, you must request the _dangerous permissions at runtime manually._

Example of requesting Android dangerous permissions at runtime could be found in the ./example/src/index.android.tsx file.

API

Props Type iOS Android
rtmpsUrl string?
streamKey string?
configurationPreset ConfigurationPreset?
videoConfig IVideoConfig?
audioConfig IAudioConfig?
logLevel LogLevel?
sessionLogLevel LogLevel?
cameraPreviewAspectMode CameraPreviewAspectMode?
isCameraPreviewMirrored boolean?
cameraPosition CameraPosition?
isMuted boolean?
Handlers Type iOS Android
onError (errorMessage: string): void?
onBroadcastError (error: IBroadcastSessionError): void?
onIsBroadcastReady (isReady: boolean): void?
onBroadcastAudioStats (audioStats: IAudioStats): void?
onBroadcastStateChanged (stateStatus: StateStatusUnion, metadata?: StateChangedMetadata): void?
onTransmissionStatisticsChanged (transmissionStatistics: ITransmissionStatistics): void?
onAudioSessionInterrupted (): void? 🚫
onAudioSessionResumed (): void? 🚫
onMediaServicesWereLost (): void? 🚫
onMediaServicesWereReset (): void? 🚫
Methods Type iOS Android
start (options?: StartMethodOptions): void
stop (): void

👉 Read more detailed API documentation.

👉 iOS and Android known issues and workarounds.

Usage

A complex usage could be found in the ./example/src/App.tsx file or just go to the ./example folder and read Setting up and running application section how to set up and run the example app to see IVSBroadcastCameraView component in action.


License

MIT

Credits

This project has been built and is maintained thanks to the support from Apiko.

Apiko

Extension points exported contracts — how you extend this code

IIVSBroadcastCameraView (Interface)
(no doc) [2 implementers]
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts
IEventHandler (Interface)
(no doc)
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts
IBaseTransmissionStatistics (Interface)
(no doc)
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts
INativeTransmissionStatistics (Interface)
(no doc)
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts
ITransmissionStatistics (Interface)
(no doc)
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts

Core symbols most depended-on inside this repo

toString
called by 14
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastCameraView.java
sendEvent
called by 8
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastCameraView.java
run
called by 8
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastSessionService.java
isInitialized
called by 8
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastSessionService.java
sendErrorEvent
called by 6
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastCameraView.java
start
called by 5
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts
stop
called by 5
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts
getCameraPreviewAsync
called by 3
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastSessionService.java

Shape

Method 126
Function 24
Interface 17
Class 11
Enum 7

Languages

Java64%
TypeScript36%

Modules by API surface

android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastSessionService.java47 symbols
src/IVSBroadcastCameraView/IVSBroadcastCameraView.types.ts38 symbols
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastCameraView.java32 symbols
android/src/main/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastCameraViewManger.java18 symbols
src/IVSBroadcastCameraView/IVSBroadcastCameraView.tsx15 symbols
example/android/app/src/main/java/com/example/amazonivsreactnativebroadcast/MainApplication.java7 symbols
example/android/app/src/debug/java/com/example/amazonivsreactnativebroadcast/ReactNativeFlipper.java5 symbols
src/IVSBroadcastCameraView/__tests__/index.test.tsx4 symbols
example/src/App.tsx4 symbols
e2e/environment.js3 symbols
android/src/test/java/com/amazonivsreactnativebroadcast/IVSBroadcastCameraView/IVSBroadcastSessionServiceTest.java3 symbols
android/src/main/java/com/amazonivsreactnativebroadcast/AmazonIvsReactNativeBroadcastPackage.java3 symbols

For agents

$ claude mcp add amazon-ivs-react-native-broadcast \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page