expo-realtime-ivs-broadcast 0.1.10 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +261 -4
- package/android/build/.transforms/10a4d332fad050fdaf4ee2d7badc1ee4/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView$attachStreamWithRetry$4.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$16$1.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$1$10$2.dex → ExpoRealtimeIvsBroadcastModule$definition$1$16$2.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$1$11$1.dex → ExpoRealtimeIvsBroadcastModule$definition$1$17$1.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$2.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$1.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$10.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$10.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$14.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$11.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$12.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$12.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$13.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$13.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$11.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$14.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$15.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$15.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$16.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$17.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$18.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$4.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$2.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$3.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$3.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$5.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$4.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$1.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$5.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$6.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$6.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$7.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$7.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$8.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$9.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$9.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$1.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$1.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$2.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$2.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$3.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$3.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$4.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$5.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$6.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$7.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$8.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$OnCreate$1.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$1.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$View$1.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$2.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$View$2.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$22$$inlined$Prop$1.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$10$$inlined$Prop$1.dex → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$22$$inlined$Prop$2.dex} +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$23$$inlined$Prop$1.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManager.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/PiPOptions$PiPSourceView.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/PiPOptions.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/PiPStateListener.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/PictureInPictureDelegate.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/PictureInPictureManager$Companion.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/PictureInPictureManager.dex +0 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +5 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +12 -1
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +5 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView$attachStreamWithRetry$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$1$10$1.class → ExpoRealtimeIvsBroadcastModule$definition$1$16$1.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$2.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$16$2.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$1$11$1.class → ExpoRealtimeIvsBroadcastModule$definition$1$17$1.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$4.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$1.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$10.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$10.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$14.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$11.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$12.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$12.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$13.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$13.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$11.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$14.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$15.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$15.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$16.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$17.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$18.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$5.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$2.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$3.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$3.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$2.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$4.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$1.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$5.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$6.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$6.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$7.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$7.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$9.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$9.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$1.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$1.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$2.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$2.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$3.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$3.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$5.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$7.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$OnCreate$1.class} +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$1.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$View$1.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$2.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$View$2.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$22$$inlined$Prop$1.class +0 -0
- package/android/build/{tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$10$$inlined$Prop$1.class → intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$22$$inlined$Prop$2.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$10$$inlined$Prop$1.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$23$$inlined$Prop$1.class} +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/IVSStageManager.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/PiPOptions$PiPSourceView.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/PiPOptions.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/PiPStateListener.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/PictureInPictureDelegate.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/PictureInPictureManager$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/PictureInPictureManager.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +14 -2
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView$attachStreamWithRetry$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$1$10$1.class → ExpoRealtimeIvsBroadcastModule$definition$1$16$1.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$2.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$16$2.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$1$11$1.class → ExpoRealtimeIvsBroadcastModule$definition$1$17$1.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$10.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$10.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$14.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$11.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$12.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$12.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$13.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$13.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$11.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$14.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$15.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$15.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$16.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$17.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$18.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$3.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$3.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$5.class +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$6.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$6.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$7.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$7.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$8.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$9.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunction$9.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$1.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$1.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$2.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$2.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$3.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$3.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$5.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$6.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$7.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$AsyncFunctionWithoutArgs$8.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$OnCreate$1.class} +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$1.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$View$1.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$2.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$$inlined$View$2.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$22$$inlined$Prop$1.class +0 -0
- package/android/build/{intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$2.class → tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$22$$inlined$Prop$2.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/{ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$2.class → ExpoRealtimeIvsBroadcastModule$definition$lambda$24$lambda$23$$inlined$Prop$1.class} +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/IVSStageManager.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/PiPOptions$PiPSourceView.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/PiPOptions.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/PiPStateListener.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/PictureInPictureDelegate.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/PictureInPictureManager$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/PictureInPictureManager.class +0 -0
- package/android/src/main/AndroidManifest.xml +5 -0
- package/android/src/main/java/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.kt +172 -23
- package/android/src/main/java/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.kt +33 -0
- package/android/src/main/java/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.kt +92 -2
- package/android/src/main/java/expo/modules/realtimeivsbroadcast/IVSStageManager.kt +5 -2
- package/android/src/main/java/expo/modules/realtimeivsbroadcast/PictureInPictureManager.kt +431 -0
- package/build/ExpoRealtimeIvsBroadcast.types.d.ts +45 -0
- package/build/ExpoRealtimeIvsBroadcast.types.d.ts.map +1 -1
- package/build/ExpoRealtimeIvsBroadcast.types.js.map +1 -1
- package/build/ExpoRealtimeIvsBroadcastModule.d.ts +7 -1
- package/build/ExpoRealtimeIvsBroadcastModule.d.ts.map +1 -1
- package/build/ExpoRealtimeIvsBroadcastModule.js.map +1 -1
- package/build/ExpoRealtimeIvsBroadcastModule.web.d.ts +7 -1
- package/build/ExpoRealtimeIvsBroadcastModule.web.d.ts.map +1 -1
- package/build/ExpoRealtimeIvsBroadcastModule.web.js +20 -0
- package/build/ExpoRealtimeIvsBroadcastModule.web.js.map +1 -1
- package/build/index.d.ts +60 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +77 -0
- package/build/index.js.map +1 -1
- package/ios/ExpoIVSRemoteStreamView.swift +17 -0
- package/ios/ExpoIVSStagePreviewView.swift +39 -5
- package/ios/ExpoRealtimeIvsBroadcast.podspec +2 -1
- package/ios/ExpoRealtimeIvsBroadcastModule.swift +46 -1
- package/ios/IVSPictureInPictureController.swift +1196 -0
- package/ios/IVSStageManager.swift +419 -1
- package/package.json +1 -1
- package/src/ExpoRealtimeIvsBroadcast.types.ts +53 -0
- package/src/ExpoRealtimeIvsBroadcastModule.ts +9 -1
- package/src/ExpoRealtimeIvsBroadcastModule.web.ts +26 -8
- package/src/index.ts +94 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$1.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$8.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$1.dex +0 -0
- package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$2.dex +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$5.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$8.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$1.class +0 -0
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import ExpoModulesCore
|
|
2
2
|
import AmazonIVSBroadcast
|
|
3
3
|
import AVFoundation // For AVAudioSession
|
|
4
|
+
import AVKit
|
|
4
5
|
|
|
5
6
|
extension Notification.Name {
|
|
6
7
|
static let remoteStreamAvailable = Notification.Name("remoteStreamAvailableNotification")
|
|
7
8
|
}
|
|
8
9
|
|
|
10
|
+
// MARK: - PiP Frame Source Protocol
|
|
11
|
+
protocol PiPFrameSource: AnyObject {
|
|
12
|
+
func didReceiveFrame(_ pixelBuffer: CVPixelBuffer)
|
|
13
|
+
func didReceiveSampleBuffer(_ sampleBuffer: CMSampleBuffer)
|
|
14
|
+
}
|
|
15
|
+
|
|
9
16
|
// MARK: - Custom Camera Capture Manager
|
|
10
17
|
// This class captures video from AVCaptureDevice and feeds it to IVS custom image source
|
|
11
18
|
// Used to work around the IVS Stages SDK limitation where back camera isn't exposed
|
|
@@ -20,6 +27,9 @@ class CustomCameraCapture: NSObject, AVCaptureVideoDataOutputSampleBufferDelegat
|
|
|
20
27
|
var currentPosition: AVCaptureDevice.Position = .front
|
|
21
28
|
var previewLayer: AVCaptureVideoPreviewLayer?
|
|
22
29
|
|
|
30
|
+
// PiP frame source delegate
|
|
31
|
+
weak var pipFrameSource: PiPFrameSource?
|
|
32
|
+
|
|
23
33
|
// Available cameras discovered via AVFoundation
|
|
24
34
|
private(set) var availableCameras: [AVCaptureDevice] = []
|
|
25
35
|
|
|
@@ -92,6 +102,17 @@ class CustomCameraCapture: NSObject, AVCaptureVideoDataOutputSampleBufferDelegat
|
|
|
92
102
|
if captureSession == nil {
|
|
93
103
|
captureSession = AVCaptureSession()
|
|
94
104
|
captureSession?.sessionPreset = .hd1280x720
|
|
105
|
+
|
|
106
|
+
// iOS 16+: Enable multitasking camera access for PiP support
|
|
107
|
+
// This allows camera to continue running when app is in PiP mode
|
|
108
|
+
if #available(iOS 16.0, *) {
|
|
109
|
+
if captureSession?.isMultitaskingCameraAccessSupported == true {
|
|
110
|
+
captureSession?.isMultitaskingCameraAccessEnabled = true
|
|
111
|
+
print("📸 [CustomCameraCapture] ✅ Multitasking camera access enabled (iOS 16+)")
|
|
112
|
+
} else {
|
|
113
|
+
print("📸 [CustomCameraCapture] ⚠️ Multitasking camera access not supported on this device")
|
|
114
|
+
}
|
|
115
|
+
}
|
|
95
116
|
}
|
|
96
117
|
|
|
97
118
|
guard let session = captureSession else { return false }
|
|
@@ -203,9 +224,22 @@ class CustomCameraCapture: NSObject, AVCaptureVideoDataOutputSampleBufferDelegat
|
|
|
203
224
|
|
|
204
225
|
// MARK: - AVCaptureVideoDataOutputSampleBufferDelegate
|
|
205
226
|
|
|
227
|
+
private var captureFrameCount: Int = 0
|
|
228
|
+
|
|
206
229
|
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
|
|
230
|
+
captureFrameCount += 1
|
|
231
|
+
|
|
232
|
+
// Log periodically to track if capture is running
|
|
233
|
+
if captureFrameCount == 1 || captureFrameCount % 300 == 0 {
|
|
234
|
+
let isBackground = UIApplication.shared.applicationState == .background
|
|
235
|
+
print("📸 [CustomCameraCapture] Frame #\(captureFrameCount), background: \(isBackground), hasPiPDelegate: \(pipFrameSource != nil)")
|
|
236
|
+
}
|
|
237
|
+
|
|
207
238
|
// Feed the sample buffer to IVS custom image source
|
|
208
239
|
customImageSource?.onSampleBuffer(sampleBuffer)
|
|
240
|
+
|
|
241
|
+
// Forward to PiP if enabled
|
|
242
|
+
pipFrameSource?.didReceiveSampleBuffer(sampleBuffer)
|
|
209
243
|
}
|
|
210
244
|
|
|
211
245
|
func captureOutput(_ output: AVCaptureOutput, didDrop sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
|
|
@@ -259,6 +293,27 @@ class IVSStageManager: NSObject, IVSStageStreamDelegate, IVSStageStrategy, IVSSt
|
|
|
259
293
|
private var remoteViews: [Weak<ExpoIVSRemoteStreamView>] = []
|
|
260
294
|
// The specific participant we should prioritize rendering.
|
|
261
295
|
private var targetParticipantId: String?
|
|
296
|
+
|
|
297
|
+
// MARK: - Picture-in-Picture Properties
|
|
298
|
+
|
|
299
|
+
private var _pipController: AnyObject?
|
|
300
|
+
private var _pipOptions: PiPOptions = PiPOptions()
|
|
301
|
+
private var currentPiPSourceDeviceUrn: String?
|
|
302
|
+
private weak var pipTargetView: UIView?
|
|
303
|
+
// Store the current IVSImageDevice being used for PiP frame capture
|
|
304
|
+
private var currentPiPDevice: IVSImageDevice?
|
|
305
|
+
// Store the local preview view for broadcaster PiP
|
|
306
|
+
private weak var localPreviewView: UIView?
|
|
307
|
+
|
|
308
|
+
@available(iOS 15.0, *)
|
|
309
|
+
private var pipController: IVSPictureInPictureController {
|
|
310
|
+
if _pipController == nil {
|
|
311
|
+
let controller = IVSPictureInPictureController()
|
|
312
|
+
controller.delegate = self
|
|
313
|
+
_pipController = controller
|
|
314
|
+
}
|
|
315
|
+
return _pipController as! IVSPictureInPictureController
|
|
316
|
+
}
|
|
262
317
|
|
|
263
318
|
// MARK: - Initialization
|
|
264
319
|
|
|
@@ -774,6 +829,313 @@ class IVSStageManager: NSObject, IVSStageStreamDelegate, IVSStageStrategy, IVSSt
|
|
|
774
829
|
print("Microphone muted: \(muted)")
|
|
775
830
|
}
|
|
776
831
|
|
|
832
|
+
// MARK: - Picture-in-Picture Public API
|
|
833
|
+
|
|
834
|
+
/// Enable PiP with the given options
|
|
835
|
+
@available(iOS 15.0, *)
|
|
836
|
+
func enablePictureInPicture(options: [String: Any]?) {
|
|
837
|
+
var pipOpts = PiPOptions()
|
|
838
|
+
|
|
839
|
+
if let autoEnter = options?["autoEnterOnBackground"] as? Bool {
|
|
840
|
+
pipOpts.autoEnterOnBackground = autoEnter
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
if let sourceView = options?["sourceView"] as? String {
|
|
844
|
+
pipOpts.sourceView = sourceView == "local" ? .local : .remote
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
if let aspectRatio = options?["preferredAspectRatio"] as? [String: Any],
|
|
848
|
+
let width = aspectRatio["width"] as? CGFloat,
|
|
849
|
+
let height = aspectRatio["height"] as? CGFloat {
|
|
850
|
+
pipOpts.preferredAspectRatio = CGSize(width: width, height: height)
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
self._pipOptions = pipOpts
|
|
854
|
+
|
|
855
|
+
let success = pipController.enable(options: pipOpts)
|
|
856
|
+
|
|
857
|
+
if success {
|
|
858
|
+
// Setup frame forwarding based on source view
|
|
859
|
+
setupPiPFrameCapture()
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
/// Disable PiP
|
|
864
|
+
@available(iOS 15.0, *)
|
|
865
|
+
func disablePictureInPicture() {
|
|
866
|
+
pipController.disable()
|
|
867
|
+
cleanupPiPFrameCapture()
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
/// Start PiP manually
|
|
871
|
+
@available(iOS 15.0, *)
|
|
872
|
+
func startPictureInPicture() {
|
|
873
|
+
pipController.start()
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
/// Stop PiP manually
|
|
877
|
+
@available(iOS 15.0, *)
|
|
878
|
+
func stopPictureInPicture() {
|
|
879
|
+
pipController.stop()
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
/// Check if PiP is currently active
|
|
883
|
+
@available(iOS 15.0, *)
|
|
884
|
+
func isPictureInPictureActive() -> Bool {
|
|
885
|
+
return pipController.isActive
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
/// Check if PiP is enabled
|
|
889
|
+
@available(iOS 15.0, *)
|
|
890
|
+
func isPictureInPictureEnabled() -> Bool {
|
|
891
|
+
return pipController.isEnabled
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
/// Set the target view for PiP (used for remote stream capture)
|
|
895
|
+
@available(iOS 15.0, *)
|
|
896
|
+
func setPiPTargetView(_ view: UIView?) {
|
|
897
|
+
self.pipTargetView = view
|
|
898
|
+
|
|
899
|
+
if let view = view, pipController.isEnabled, _pipOptions.sourceView == .remote {
|
|
900
|
+
// Start view capture for remote stream
|
|
901
|
+
pipController.startViewCapture(from: view)
|
|
902
|
+
print("🖼️ [PiP] Set target view for remote stream capture")
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/// Register the local preview view (ExpoIVSStagePreviewView) for broadcaster PiP
|
|
907
|
+
/// This should be called when the local preview view is set up
|
|
908
|
+
func registerLocalPreviewView(_ view: UIView?) {
|
|
909
|
+
self.localPreviewView = view
|
|
910
|
+
print("🖼️ [PiP] Registered local preview view: \(view != nil ? "set" : "cleared")")
|
|
911
|
+
|
|
912
|
+
// If PiP is already enabled for local source, set up the frame capture now
|
|
913
|
+
if #available(iOS 15.0, *) {
|
|
914
|
+
if pipController.isEnabled, _pipOptions.sourceView == .local, let view = view {
|
|
915
|
+
setupLocalCameraPiP(sourceView: view)
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
// MARK: - PiP Frame Capture Setup
|
|
921
|
+
|
|
922
|
+
@available(iOS 15.0, *)
|
|
923
|
+
private func setupPiPFrameCapture() {
|
|
924
|
+
if _pipOptions.sourceView == .local {
|
|
925
|
+
// For local camera (broadcaster mode)
|
|
926
|
+
if let sourceView = localPreviewView {
|
|
927
|
+
setupLocalCameraPiP(sourceView: sourceView)
|
|
928
|
+
} else {
|
|
929
|
+
print("🖼️ [PiP] Warning: Local preview view not registered yet. PiP will be set up when view is registered.")
|
|
930
|
+
}
|
|
931
|
+
} else {
|
|
932
|
+
// For remote streams, use IVSImageDevice frame callback
|
|
933
|
+
updatePiPSourceIfNeeded()
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
/// Set up PiP for local camera with the given source view
|
|
938
|
+
@available(iOS 15.0, *)
|
|
939
|
+
private func setupLocalCameraPiP(sourceView: UIView) {
|
|
940
|
+
print("🖼️ [PiP] Setting up local camera PiP with source view")
|
|
941
|
+
|
|
942
|
+
// First, set up the Video Call API source view
|
|
943
|
+
pipController.setupWithSourceView(sourceView)
|
|
944
|
+
pipTargetView = sourceView
|
|
945
|
+
|
|
946
|
+
// IMPORTANT: Always use IVSImageDevice frame callback from the camera stream
|
|
947
|
+
// This works better in background than relying on AVCaptureSession delegate
|
|
948
|
+
// because the IVS SDK manages the frame pipeline internally
|
|
949
|
+
guard let stream = cameraStream, let imageDevice = stream.device as? IVSImageDevice else {
|
|
950
|
+
print("🖼️ [PiP] Warning: Camera stream not available for PiP frame callback")
|
|
951
|
+
|
|
952
|
+
// Fallback to AVCaptureSession delegate for custom capture only
|
|
953
|
+
if useCustomCameraCapture {
|
|
954
|
+
customCameraCapture?.pipFrameSource = self
|
|
955
|
+
print("🖼️ [PiP] Using fallback: AVCaptureSession delegate (may freeze in background)")
|
|
956
|
+
}
|
|
957
|
+
return
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
// Use IVSImageDevice frame callback - this works for both native IVS camera
|
|
961
|
+
// and custom capture (where the device is IVSCustomImageSource)
|
|
962
|
+
setupFrameCallbackOnDevice(imageDevice)
|
|
963
|
+
|
|
964
|
+
let deviceType = useCustomCameraCapture ? "IVSCustomImageSource" : "native IVS camera"
|
|
965
|
+
print("🖼️ [PiP] Setup local camera frame capture via IVSImageDevice (\(deviceType))")
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
/// Set up frame callback on an IVSImageDevice without changing the source view
|
|
969
|
+
@available(iOS 15.0, *)
|
|
970
|
+
private func setupFrameCallbackOnDevice(_ device: IVSImageDevice) {
|
|
971
|
+
// If we are already attached to this device, do nothing
|
|
972
|
+
if currentPiPDevice === device {
|
|
973
|
+
print("🖼️ [PiP] Already attached to this device, skipping")
|
|
974
|
+
return
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
// If attached to another device, detach first
|
|
978
|
+
if let oldDevice = currentPiPDevice {
|
|
979
|
+
oldDevice.setOnFrameCallback(nil)
|
|
980
|
+
print("🖼️ [PiP] Detached from previous device")
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
currentPiPDevice = device
|
|
984
|
+
currentPiPSourceDeviceUrn = device.descriptor().urn
|
|
985
|
+
|
|
986
|
+
print("🖼️ [PiP] Setting up frame callback on device: \(device.descriptor().urn)")
|
|
987
|
+
|
|
988
|
+
// Set frame callback to receive CVPixelBuffers
|
|
989
|
+
// Use a dedicated queue for frame processing
|
|
990
|
+
let frameQueue = DispatchQueue(label: "com.ivs.pip.frameCallback", qos: .userInteractive)
|
|
991
|
+
|
|
992
|
+
// Track frame count for debugging
|
|
993
|
+
var deviceFrameCount = 0
|
|
994
|
+
|
|
995
|
+
device.setOnFrameCallbackQueue(frameQueue, includePixelBuffer: true) { [weak self] frame in
|
|
996
|
+
guard let self = self else { return }
|
|
997
|
+
|
|
998
|
+
deviceFrameCount += 1
|
|
999
|
+
|
|
1000
|
+
// Log periodically to track if frames are coming
|
|
1001
|
+
if deviceFrameCount == 1 || deviceFrameCount % 150 == 0 { // Log every 5 seconds at 30fps
|
|
1002
|
+
let isBackground = UIApplication.shared.applicationState == .background
|
|
1003
|
+
print("🖼️ [PiP] IVSImageDevice frame #\(deviceFrameCount), background: \(isBackground), hasPixelBuffer: \(frame.pixelBuffer != nil)")
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
if let pixelBuffer = frame.pixelBuffer {
|
|
1007
|
+
self.pipController.enqueueFrame(pixelBuffer)
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
print("🖼️ [PiP] Frame callback registered on device")
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
@available(iOS 15.0, *)
|
|
1015
|
+
private func cleanupPiPFrameCapture() {
|
|
1016
|
+
// Clear custom camera capture delegate
|
|
1017
|
+
customCameraCapture?.pipFrameSource = nil
|
|
1018
|
+
|
|
1019
|
+
// Clear IVS device callback
|
|
1020
|
+
if let device = currentPiPDevice {
|
|
1021
|
+
// Remove the callback
|
|
1022
|
+
device.setOnFrameCallback(nil)
|
|
1023
|
+
print("🖼️ [PiP] Removed frame callback from device: \(device.descriptor().urn)")
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
currentPiPDevice = nil
|
|
1027
|
+
currentPiPSourceDeviceUrn = nil
|
|
1028
|
+
pipTargetView = nil
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/// Attach frame callback to an IVS Image Device
|
|
1032
|
+
@available(iOS 15.0, *)
|
|
1033
|
+
private func attachToDevice(_ device: IVSImageDevice, sourceView: UIView? = nil) {
|
|
1034
|
+
// If we are already attached to this device, do nothing
|
|
1035
|
+
if currentPiPDevice === device {
|
|
1036
|
+
return
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
// If attached to another device, detach first
|
|
1040
|
+
if let oldDevice = currentPiPDevice {
|
|
1041
|
+
oldDevice.setOnFrameCallback(nil)
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
currentPiPDevice = device
|
|
1045
|
+
currentPiPSourceDeviceUrn = device.descriptor().urn
|
|
1046
|
+
|
|
1047
|
+
print("🖼️ [PiP] Attaching frame callback to device: \(device.descriptor().urn)")
|
|
1048
|
+
|
|
1049
|
+
// IMPORTANT: Set up the Video Call API source view
|
|
1050
|
+
// This is required for the PiP window to appear correctly
|
|
1051
|
+
if let view = sourceView {
|
|
1052
|
+
pipController.setupWithSourceView(view)
|
|
1053
|
+
pipTargetView = view
|
|
1054
|
+
} else {
|
|
1055
|
+
// Try to get a preview view from the device
|
|
1056
|
+
do {
|
|
1057
|
+
let previewView = try device.previewView()
|
|
1058
|
+
pipController.setupWithSourceView(previewView)
|
|
1059
|
+
pipTargetView = previewView
|
|
1060
|
+
} catch {
|
|
1061
|
+
print("🖼️ [PiP] Warning: Could not get preview view from device: \(error)")
|
|
1062
|
+
// Try to find a remote view that's rendering this device
|
|
1063
|
+
if let remoteView = remoteViews.compactMap({ $0.value }).first(where: { $0.currentRenderedDeviceUrn == device.descriptor().urn }),
|
|
1064
|
+
let previewViewForPiP = remoteView.previewViewForPiP {
|
|
1065
|
+
pipController.setupWithSourceView(remoteView as UIView)
|
|
1066
|
+
pipTargetView = previewViewForPiP
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
// Set frame callback to receive CVPixelBuffers
|
|
1072
|
+
// Using a dedicated queue for better performance
|
|
1073
|
+
let frameQueue = DispatchQueue(label: "com.ivs.pip.frameCallback", qos: .userInteractive)
|
|
1074
|
+
device.setOnFrameCallbackQueue(frameQueue, includePixelBuffer: true) { [weak self] frame in
|
|
1075
|
+
guard let self = self else { return }
|
|
1076
|
+
|
|
1077
|
+
if let pixelBuffer = frame.pixelBuffer {
|
|
1078
|
+
self.pipController.enqueueFrame(pixelBuffer)
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
/// Update PiP source when streams change
|
|
1084
|
+
@available(iOS 15.0, *)
|
|
1085
|
+
func updatePiPSourceIfNeeded() {
|
|
1086
|
+
guard pipController.isEnabled, _pipOptions.sourceView == .remote else { return }
|
|
1087
|
+
|
|
1088
|
+
// We prioritize the target participant if set, otherwise any remote video
|
|
1089
|
+
var candidateStream: IVSStageStream?
|
|
1090
|
+
var candidateSourceView: UIView?
|
|
1091
|
+
|
|
1092
|
+
// Strategy: Find the first available video stream from a remote participant
|
|
1093
|
+
// 1. If targetParticipantId is set, check them first
|
|
1094
|
+
if let targetId = self.targetParticipantId,
|
|
1095
|
+
let participant = self.participants.first(where: { $0.info.participantId == targetId }) {
|
|
1096
|
+
candidateStream = participant.streams.first(where: { $0.device.descriptor().type == IVSDeviceType(rawValue: 5) }) // 5 = Video
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
// 2. If no target or no stream, check all participants
|
|
1100
|
+
if candidateStream == nil {
|
|
1101
|
+
for participant in self.participants {
|
|
1102
|
+
if let stream = participant.streams.first(where: { $0.device.descriptor().type == IVSDeviceType(rawValue: 5) }) {
|
|
1103
|
+
candidateStream = stream
|
|
1104
|
+
break
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
if let stream = candidateStream, let imageDevice = stream.device as? IVSImageDevice {
|
|
1110
|
+
// Found a valid video stream, attach to it
|
|
1111
|
+
if currentPiPSourceDeviceUrn != imageDevice.descriptor().urn {
|
|
1112
|
+
print("🖼️ [PiP] Found new remote video stream: \(imageDevice.descriptor().urn)")
|
|
1113
|
+
|
|
1114
|
+
// Try to find the remote view that's rendering this stream
|
|
1115
|
+
if let remoteView = remoteViews.compactMap({ $0.value }).first(where: { $0.currentRenderedDeviceUrn == imageDevice.descriptor().urn }) {
|
|
1116
|
+
// Use the remote view (container) as the source view for Video Call API
|
|
1117
|
+
// Cast to UIView explicitly since ExpoIVSRemoteStreamView extends ExpoView -> UIView
|
|
1118
|
+
candidateSourceView = remoteView as UIView
|
|
1119
|
+
print("🖼️ [PiP] Found matching remote view for source")
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
attachToDevice(imageDevice, sourceView: candidateSourceView)
|
|
1123
|
+
}
|
|
1124
|
+
} else {
|
|
1125
|
+
// No candidate stream found
|
|
1126
|
+
if currentPiPDevice == nil {
|
|
1127
|
+
print("🖼️ [PiP] No active remote video stream found yet")
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
/// Called by ExpoIVSRemoteStreamView when a stream finishes rendering
|
|
1133
|
+
func notifyRemoteStreamRendered() {
|
|
1134
|
+
if #available(iOS 15.0, *) {
|
|
1135
|
+
updatePiPSourceIfNeeded()
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
|
|
777
1139
|
// Public getter for the camera stream so the View can access it
|
|
778
1140
|
public func getCameraStream() -> IVSLocalStageStream? {
|
|
779
1141
|
return self.cameraStream
|
|
@@ -1066,6 +1428,11 @@ extension IVSStageManager {
|
|
|
1066
1428
|
if streams.contains(where: { $0.device.descriptor().type == IVSDeviceType(rawValue: 5) }) {
|
|
1067
1429
|
print("🧠 [MANAGER] Assigning streams to available views. didAddStreams")
|
|
1068
1430
|
self.assignStreamsToAvailableViews()
|
|
1431
|
+
|
|
1432
|
+
// Update PiP source if needed
|
|
1433
|
+
if #available(iOS 15.0, *) {
|
|
1434
|
+
updatePiPSourceIfNeeded()
|
|
1435
|
+
}
|
|
1069
1436
|
}
|
|
1070
1437
|
|
|
1071
1438
|
delegate?.stageManagerDidEmitEvent(eventName: "onParticipantStreamsAdded", body: body)
|
|
@@ -1102,8 +1469,11 @@ extension IVSStageManager {
|
|
|
1102
1469
|
"participantId": participant.participantId ?? "",
|
|
1103
1470
|
"streams": streamDicts
|
|
1104
1471
|
]
|
|
1105
|
-
|
|
1106
1472
|
|
|
1473
|
+
// Update PiP source if the removed stream was being used
|
|
1474
|
+
if #available(iOS 15.0, *) {
|
|
1475
|
+
updatePiPSourceIfNeeded()
|
|
1476
|
+
}
|
|
1107
1477
|
|
|
1108
1478
|
delegate?.stageManagerDidEmitEvent(eventName: "onParticipantStreamsRemoved", body: body)
|
|
1109
1479
|
}
|
|
@@ -1135,3 +1505,51 @@ class Weak<T: AnyObject> {
|
|
|
1135
1505
|
self.value = value
|
|
1136
1506
|
}
|
|
1137
1507
|
}
|
|
1508
|
+
|
|
1509
|
+
// MARK: - PiPFrameSource Implementation
|
|
1510
|
+
extension IVSStageManager: PiPFrameSource {
|
|
1511
|
+
private static var frameReceivedCount: Int = 0
|
|
1512
|
+
|
|
1513
|
+
func didReceiveFrame(_ pixelBuffer: CVPixelBuffer) {
|
|
1514
|
+
if #available(iOS 15.0, *) {
|
|
1515
|
+
IVSStageManager.frameReceivedCount += 1
|
|
1516
|
+
// Log periodically to confirm frames are flowing
|
|
1517
|
+
if IVSStageManager.frameReceivedCount == 1 || IVSStageManager.frameReceivedCount % 300 == 0 {
|
|
1518
|
+
print("🖼️ [PiP] Received pixel buffer frame #\(IVSStageManager.frameReceivedCount)")
|
|
1519
|
+
}
|
|
1520
|
+
pipController.enqueueFrame(pixelBuffer)
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
func didReceiveSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
|
|
1525
|
+
if #available(iOS 15.0, *) {
|
|
1526
|
+
IVSStageManager.frameReceivedCount += 1
|
|
1527
|
+
// Log periodically to confirm frames are flowing
|
|
1528
|
+
if IVSStageManager.frameReceivedCount == 1 || IVSStageManager.frameReceivedCount % 300 == 0 {
|
|
1529
|
+
print("🖼️ [PiP] Received sample buffer frame #\(IVSStageManager.frameReceivedCount)")
|
|
1530
|
+
}
|
|
1531
|
+
pipController.enqueueSampleBuffer(sampleBuffer)
|
|
1532
|
+
}
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
// MARK: - IVSPictureInPictureControllerDelegate Implementation
|
|
1537
|
+
@available(iOS 15.0, *)
|
|
1538
|
+
extension IVSStageManager: IVSPictureInPictureControllerDelegate {
|
|
1539
|
+
func pictureInPictureDidStart() {
|
|
1540
|
+
delegate?.stageManagerDidEmitEvent(eventName: "onPiPStateChanged", body: ["state": "started"])
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
func pictureInPictureDidStop() {
|
|
1544
|
+
delegate?.stageManagerDidEmitEvent(eventName: "onPiPStateChanged", body: ["state": "stopped"])
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1547
|
+
func pictureInPictureWillRestore() {
|
|
1548
|
+
delegate?.stageManagerDidEmitEvent(eventName: "onPiPStateChanged", body: ["state": "restored"])
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
func pictureInPictureDidFail(with error: String) {
|
|
1552
|
+
delegate?.stageManagerDidEmitEvent(eventName: "onPiPError", body: ["error": error])
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
|
package/package.json
CHANGED
|
@@ -70,6 +70,56 @@ export interface ParticipantStreamsRemovedPayload {
|
|
|
70
70
|
streams: { deviceUrn: string }[];
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
// --- Picture-in-Picture Types ---
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Options for configuring Picture-in-Picture behavior
|
|
77
|
+
*/
|
|
78
|
+
export interface PiPOptions {
|
|
79
|
+
/**
|
|
80
|
+
* Whether to automatically enter PiP when the app goes to background
|
|
81
|
+
* @default true
|
|
82
|
+
*/
|
|
83
|
+
autoEnterOnBackground?: boolean;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Which video stream to show in PiP
|
|
87
|
+
* - 'local': Shows the local camera preview (for broadcasters)
|
|
88
|
+
* - 'remote': Shows the remote participant stream (for viewers)
|
|
89
|
+
* @default 'remote'
|
|
90
|
+
*/
|
|
91
|
+
sourceView?: 'local' | 'remote';
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Preferred aspect ratio for the PiP window
|
|
95
|
+
* @default { width: 9, height: 16 } (portrait)
|
|
96
|
+
*/
|
|
97
|
+
preferredAspectRatio?: {
|
|
98
|
+
width: number;
|
|
99
|
+
height: number;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* PiP state change event payload
|
|
105
|
+
*/
|
|
106
|
+
export interface PiPStateChangedPayload {
|
|
107
|
+
/**
|
|
108
|
+
* Current PiP state:
|
|
109
|
+
* - 'started': PiP mode has started
|
|
110
|
+
* - 'stopped': PiP mode has stopped
|
|
111
|
+
* - 'restored': User tapped to return from PiP to full screen
|
|
112
|
+
*/
|
|
113
|
+
state: 'started' | 'stopped' | 'restored';
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* PiP error event payload
|
|
118
|
+
*/
|
|
119
|
+
export interface PiPErrorPayload {
|
|
120
|
+
error: string;
|
|
121
|
+
}
|
|
122
|
+
|
|
73
123
|
// Defines the events that the native module can emit
|
|
74
124
|
export type ExpoRealtimeIvsBroadcastModuleEvents = {
|
|
75
125
|
onStageConnectionStateChanged: (payload: StageConnectionStatePayload) => void;
|
|
@@ -81,6 +131,9 @@ export type ExpoRealtimeIvsBroadcastModuleEvents = {
|
|
|
81
131
|
onParticipantStreamsRemoved: (payload: ParticipantStreamsRemovedPayload) => void;
|
|
82
132
|
onCameraSwapped: (payload: CameraSwappedPayload) => void;
|
|
83
133
|
onCameraSwapError: (payload: CameraSwapErrorPayload) => void;
|
|
134
|
+
// PiP events
|
|
135
|
+
onPiPStateChanged: (payload: PiPStateChangedPayload) => void;
|
|
136
|
+
onPiPError: (payload: PiPErrorPayload) => void;
|
|
84
137
|
};
|
|
85
138
|
|
|
86
139
|
// Props for the ExpoIVSStagePreviewView component
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { requireNativeModule, EventSubscription } from 'expo-modules-core';
|
|
2
|
-
import { LocalAudioConfig, LocalVideoConfig, PermissionStatusMap, ExpoRealtimeIvsBroadcastModuleEvents } from './ExpoRealtimeIvsBroadcast.types';
|
|
2
|
+
import { LocalAudioConfig, LocalVideoConfig, PermissionStatusMap, ExpoRealtimeIvsBroadcastModuleEvents, PiPOptions } from './ExpoRealtimeIvsBroadcast.types';
|
|
3
3
|
|
|
4
4
|
// This combines the module's method signatures with the event emitter's signatures.
|
|
5
5
|
// By defining `addListener` and `removeListeners` explicitly, we get strong type-checking
|
|
@@ -13,6 +13,14 @@ export type ExpoRealtimeIvsBroadcastModuleType = {
|
|
|
13
13
|
swapCamera(): Promise<void>;
|
|
14
14
|
setMicrophoneMuted(muted: boolean): Promise<void>;
|
|
15
15
|
requestPermissions(): Promise<PermissionStatusMap>;
|
|
16
|
+
|
|
17
|
+
// Picture-in-Picture methods
|
|
18
|
+
enablePictureInPicture(options?: PiPOptions): Promise<boolean>;
|
|
19
|
+
disablePictureInPicture(): Promise<void>;
|
|
20
|
+
startPictureInPicture(): Promise<void>;
|
|
21
|
+
stopPictureInPicture(): Promise<void>;
|
|
22
|
+
isPictureInPictureActive(): Promise<boolean>;
|
|
23
|
+
isPictureInPictureSupported(): Promise<boolean>;
|
|
16
24
|
|
|
17
25
|
addListener<EventName extends keyof ExpoRealtimeIvsBroadcastModuleEvents>(
|
|
18
26
|
eventName: EventName,
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
import { registerWebModule, NativeModule } from 'expo';
|
|
2
2
|
|
|
3
|
-
import { ExpoRealtimeIvsBroadcastModuleEvents } from './ExpoRealtimeIvsBroadcast.types';
|
|
3
|
+
import { ExpoRealtimeIvsBroadcastModuleEvents, PiPOptions } from './ExpoRealtimeIvsBroadcast.types';
|
|
4
4
|
|
|
5
5
|
class ExpoRealtimeIvsBroadcastModule extends NativeModule<ExpoRealtimeIvsBroadcastModuleEvents> {
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
// Stub implementations for web (PiP not supported on web)
|
|
7
|
+
async enablePictureInPicture(_options?: PiPOptions): Promise<boolean> {
|
|
8
|
+
console.warn('Picture-in-Picture is not supported on web');
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async disablePictureInPicture(): Promise<void> {
|
|
13
|
+
// No-op on web
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async startPictureInPicture(): Promise<void> {
|
|
17
|
+
console.warn('Picture-in-Picture is not supported on web');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async stopPictureInPicture(): Promise<void> {
|
|
21
|
+
// No-op on web
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async isPictureInPictureActive(): Promise<boolean> {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async isPictureInPictureSupported(): Promise<boolean> {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
13
31
|
}
|
|
14
32
|
|
|
15
33
|
export default registerWebModule(ExpoRealtimeIvsBroadcastModule, 'ExpoRealtimeIvsBroadcastModule');
|