amazon-ivs-react-native-player 1.0.0

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.
Files changed (168) hide show
  1. package/LICENSE +175 -0
  2. package/README.md +56 -0
  3. package/amazon-ivs-react-native-player.podspec +31 -0
  4. package/android/.project +17 -0
  5. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  6. package/android/build/.transforms/1f4dbdc38179d2776be8ed38c6bd3b8d/classes/classes.dex +0 -0
  7. package/android/build/.transforms/1f4dbdc38179d2776be8ed38c6bd3b8d.bin +1 -0
  8. package/android/build/generated/source/buildConfig/debug/com/amazonaws/ivs/reactnative/player/BuildConfig.java +10 -0
  9. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +20 -0
  10. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +16 -0
  11. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +2 -0
  12. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  13. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  14. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  15. package/android/build/intermediates/compile_symbol_list/debug/R.txt +1864 -0
  16. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  17. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  18. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  19. package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +1 -0
  20. package/android/build/intermediates/incremental/packageDebugResources/merger.xml +2 -0
  21. package/android/build/intermediates/javac/debug/classes/com/amazonaws/ivs/reactnative/player/BuildConfig.class +0 -0
  22. package/android/build/intermediates/library_java_res/debug/res.jar +0 -0
  23. package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +20 -0
  24. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  25. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +28 -0
  26. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  27. package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +16 -0
  28. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  29. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +1384 -0
  30. package/android/build/kotlin/compileDebugKotlin/build-history.bin +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  34. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.len +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  46. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  47. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  48. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  49. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  51. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  52. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab +0 -0
  53. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  54. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  55. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  56. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  57. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/counters.tab +2 -0
  81. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.len +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab_i +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.len +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab_i +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.keystream +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.len +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab.values.at +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab_i +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/caches-jvm/lookups/lookups.tab_i.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/last-build.bin +0 -0
  103. package/android/build/outputs/logs/manifest-merger-debug-report.txt +52 -0
  104. package/android/build/tmp/compileDebugJavaWithJavac/source-classes-mapping.txt +2 -0
  105. package/android/build/tmp/kotlin-classes/debug/META-INF/amazonivsreactnativeplayer_debug.kotlin_module +0 -0
  106. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsPackage.class +0 -0
  107. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsView$$special$$inlined$timerTask$1.class +0 -0
  108. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsView$1.class +0 -0
  109. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsView$Events.class +0 -0
  110. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsView$WhenMappings.class +0 -0
  111. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsView$mLayoutRunnable$1.class +0 -0
  112. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsView.class +0 -0
  113. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsViewManager$Commands.class +0 -0
  114. package/android/build/tmp/kotlin-classes/debug/com/amazonaws/ivs/reactnative/player/AmazonIvsViewManager.class +0 -0
  115. package/android/build.gradle +138 -0
  116. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  117. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  118. package/android/gradle.properties +5 -0
  119. package/android/gradlew +183 -0
  120. package/android/gradlew.bat +84 -0
  121. package/android/src/main/AndroidManifest.xml +11 -0
  122. package/android/src/main/java/com/amazonaws/ivs/reactnative/player/AmazonIvsPackage.kt +16 -0
  123. package/android/src/main/java/com/amazonaws/ivs/reactnative/player/AmazonIvsView.kt +410 -0
  124. package/android/src/main/java/com/amazonaws/ivs/reactnative/player/AmazonIvsViewManager.kt +115 -0
  125. package/ios/AmazonIvs-Bridging-Header.h +3 -0
  126. package/ios/AmazonIvs.xcodeproj/project.pbxproj +283 -0
  127. package/ios/AmazonIvsManager.m +35 -0
  128. package/ios/AmazonIvsManager.swift +29 -0
  129. package/ios/AmazonIvsView.swift +414 -0
  130. package/lib/commonjs/IVSPlayer.js +245 -0
  131. package/lib/commonjs/IVSPlayer.js.flow +53 -0
  132. package/lib/commonjs/IVSPlayer.js.map +1 -0
  133. package/lib/commonjs/enums.js +27 -0
  134. package/lib/commonjs/enums.js.flow +21 -0
  135. package/lib/commonjs/enums.js.map +1 -0
  136. package/lib/commonjs/index.js +43 -0
  137. package/lib/commonjs/index.js.flow +11 -0
  138. package/lib/commonjs/index.js.map +1 -0
  139. package/lib/commonjs/types.js +2 -0
  140. package/lib/commonjs/types.js.flow +44 -0
  141. package/lib/commonjs/types.js.map +1 -0
  142. package/lib/module/IVSPlayer.js +229 -0
  143. package/lib/module/IVSPlayer.js.flow +53 -0
  144. package/lib/module/IVSPlayer.js.map +1 -0
  145. package/lib/module/enums.js +19 -0
  146. package/lib/module/enums.js.flow +21 -0
  147. package/lib/module/enums.js.map +1 -0
  148. package/lib/module/index.js +5 -0
  149. package/lib/module/index.js.flow +11 -0
  150. package/lib/module/index.js.map +1 -0
  151. package/lib/module/types.js +2 -0
  152. package/lib/module/types.js.flow +44 -0
  153. package/lib/module/types.js.map +1 -0
  154. package/lib/typescript/IVSPlayer.d.ts +41 -0
  155. package/lib/typescript/__tests__/index.test.d.ts +1 -0
  156. package/lib/typescript/enums.d.ts +13 -0
  157. package/lib/typescript/index.d.ts +4 -0
  158. package/lib/typescript/types.d.ts +37 -0
  159. package/package.json +149 -0
  160. package/src/IVSPlayer.js.flow +53 -0
  161. package/src/IVSPlayer.tsx +366 -0
  162. package/src/__tests__/index.test.tsx +226 -0
  163. package/src/enums.js.flow +21 -0
  164. package/src/enums.ts +14 -0
  165. package/src/index.js.flow +11 -0
  166. package/src/index.ts +5 -0
  167. package/src/types.js.flow +44 -0
  168. package/src/types.ts +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["IVSPlayer.tsx"],"names":["VIEW_NAME","IVSPlayer","parseDuration","duration","Infinity","IVSPlayerContainer","React","forwardRef","style","streamUrl","paused","muted","autoplay","liveLowLatency","playbackRate","logLevel","progressInterval","volume","quality","autoMaxQuality","autoQualityMode","breakpoints","maxBitrate","initialBufferDuration","onSeek","onData","onVideoStatistics","onPlayerStateChange","onDurationChange","onQualityChange","onRebuffering","onLoadStart","onLoad","onLiveLatencyChange","onTextCue","onTextMetadataCue","onProgress","onError","onTimePoint","children","ref","mediaPlayerRef","initialized","play","UIManager","dispatchViewManagerCommand","current","getViewManagerConfig","Commands","pause","seekTo","value","onSeekHandler","event","position","nativeEvent","onPlayerStateChangeHandler","state","onDurationChangeHandler","onQualityChangeHandler","newQuality","onLoadHandler","onLiveLatencyChangeHandler","liveLatency","onDataHandler","playerData","onTextCueHandler","textCue","onVideoStatisticsHandler","videoData","statistics","onTextMetadataCueHandler","textMetadataCue","onProgressHandler","onErrorHandler","error","onTimePointHandler","styles","container","mediaPlayer","undefined","StyleSheet","create","flex","width","height"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport {\n requireNativeComponent,\n ViewStyle,\n StyleSheet,\n UIManager,\n findNodeHandle,\n View,\n NativeSyntheticEvent,\n} from 'react-native';\nimport type { LogLevel, PlayerState } from './enums';\nimport type {\n Quality,\n PlayerData,\n TextCue,\n TextMetadataCue,\n VideoData,\n IVSPlayerRef,\n} from './types';\n\ntype IVSPlayerProps = {\n style?: ViewStyle;\n testID?: string;\n ref: any;\n muted?: boolean;\n liveLowLatency?: boolean;\n playbackRate?: number;\n streamUrl?: string;\n logLevel?: LogLevel;\n progressInterval?: number;\n volume?: number;\n quality?: Quality | null;\n autoMaxQuality?: Quality | null;\n autoQualityMode?: boolean;\n breakpoints?: number[];\n maxBitrate?: number;\n initialBufferDuration?: number;\n onSeek?(event: NativeSyntheticEvent<{ position: number }>): void;\n onData?(event: NativeSyntheticEvent<{ playerData: PlayerData }>): void;\n onVideoStatistics?(\n event: NativeSyntheticEvent<{ videoData: VideoData }>\n ): void;\n onPlayerStateChange?(\n event: NativeSyntheticEvent<{ state: PlayerState }>\n ): void;\n onDurationChange?(\n event: NativeSyntheticEvent<{ duration: number | null }>\n ): void;\n onQualityChange?(event: NativeSyntheticEvent<{ quality: Quality }>): void;\n onRebuffering?(): void;\n onLoadStart?(): void;\n onLoad?(event: NativeSyntheticEvent<{ duration: number | null }>): void;\n onLiveLatencyChange?(\n event: NativeSyntheticEvent<{ liveLatency: number }>\n ): void;\n onTextCue?(event: NativeSyntheticEvent<{ textCue: TextCue }>): void;\n onTextMetadataCue?(\n event: NativeSyntheticEvent<{ textMetadataCue: TextMetadataCue }>\n ): void;\n onProgress?(event: NativeSyntheticEvent<{ position: number }>): void;\n onError?(event: NativeSyntheticEvent<{ error: string }>): void;\n onTimePoint?(event: NativeSyntheticEvent<{ position: number }>): void;\n};\n\nconst VIEW_NAME = 'AmazonIvs';\n\nconst IVSPlayer = requireNativeComponent<IVSPlayerProps>(VIEW_NAME);\n\ntype Props = {\n style?: ViewStyle;\n testID?: string;\n paused?: boolean;\n muted?: boolean;\n autoplay?: boolean;\n streamUrl?: string;\n liveLowLatency?: boolean;\n playbackRate?: number;\n logLevel?: LogLevel;\n progressInterval?: number;\n volume?: number;\n quality?: Quality | null;\n autoMaxQuality?: Quality | null;\n autoQualityMode?: boolean;\n breakpoints?: number[];\n maxBitrate?: number;\n initialBufferDuration?: number;\n onSeek?(position: number): void;\n onData?(data: PlayerData): void;\n onVideoStatistics?(data: VideoData): void;\n onPlayerStateChange?(state: PlayerState): void;\n onDurationChange?(duration: number | null): void;\n onQualityChange?(quality: Quality | null): void;\n onRebuffering?(): void;\n onLoadStart?(): void;\n onLoad?(duration: number | null): void;\n onLiveLatencyChange?(liveLatency: number): void;\n onTextCue?(textCue: TextCue): void;\n onTextMetadataCue?(textMetadataCue: TextMetadataCue): void;\n onProgress?(progress: number): void;\n onError?(error: string): void;\n onTimePoint?(position: number): void;\n children?: React.ReactNode;\n};\n\nfunction parseDuration(duration: number | null) {\n if (duration == null) {\n return duration;\n }\n return duration > 0 ? duration : Infinity;\n}\n\nconst IVSPlayerContainer = React.forwardRef<IVSPlayerRef, Props>(\n (\n {\n style,\n streamUrl,\n paused,\n muted,\n autoplay = true,\n liveLowLatency,\n playbackRate,\n logLevel,\n progressInterval,\n volume,\n quality,\n autoMaxQuality,\n autoQualityMode,\n breakpoints = [],\n maxBitrate,\n initialBufferDuration,\n onSeek,\n onData,\n onVideoStatistics,\n onPlayerStateChange,\n onDurationChange,\n onQualityChange,\n onRebuffering,\n onLoadStart,\n onLoad,\n onLiveLatencyChange,\n onTextCue,\n onTextMetadataCue,\n onProgress,\n onError,\n onTimePoint,\n children,\n },\n ref\n ) => {\n const mediaPlayerRef = useRef(null);\n const initialized = useRef(false);\n\n const play = useCallback(() => {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(mediaPlayerRef.current),\n UIManager.getViewManagerConfig(VIEW_NAME).Commands.play,\n []\n );\n }, []);\n\n const pause = useCallback(() => {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(mediaPlayerRef.current),\n UIManager.getViewManagerConfig(VIEW_NAME).Commands.pause,\n []\n );\n }, []);\n\n const seekTo = useCallback((value) => {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(mediaPlayerRef.current),\n\n UIManager.getViewManagerConfig(VIEW_NAME).Commands.seekTo,\n [value]\n );\n }, []);\n\n useEffect(() => {\n if (initialized.current || autoplay) {\n if (paused) {\n pause();\n } else {\n play();\n }\n }\n initialized.current = true;\n }, [pause, paused, play, autoplay]);\n\n useImperativeHandle(\n ref,\n () => ({\n play,\n pause,\n seekTo,\n }),\n [play, pause, seekTo]\n );\n\n const onSeekHandler = (\n event: NativeSyntheticEvent<{ position: number }>\n ) => {\n const { position } = event.nativeEvent;\n onSeek?.(position);\n };\n\n const onPlayerStateChangeHandler = (\n event: NativeSyntheticEvent<{ state: PlayerState }>\n ) => {\n const { state } = event.nativeEvent;\n onPlayerStateChange?.(state);\n };\n\n const onDurationChangeHandler = (\n event: NativeSyntheticEvent<{ duration: number | null }>\n ) => {\n const { duration } = event.nativeEvent;\n\n onDurationChange?.(parseDuration(duration));\n };\n\n const onQualityChangeHandler = (\n event: NativeSyntheticEvent<{ quality: Quality }>\n ) => {\n const { quality: newQuality } = event.nativeEvent;\n onQualityChange?.(newQuality);\n };\n\n const onLoadHandler = (\n event: NativeSyntheticEvent<{\n duration: number | null;\n }>\n ) => {\n if (!paused) {\n play();\n } else {\n pause();\n }\n\n const { duration } = event.nativeEvent;\n\n onLoad?.(parseDuration(duration));\n };\n\n const onLiveLatencyChangeHandler = (\n event: NativeSyntheticEvent<{ liveLatency: number }>\n ) => {\n const { liveLatency } = event.nativeEvent;\n onLiveLatencyChange?.(liveLatency);\n };\n\n const onDataHandler = (\n event: NativeSyntheticEvent<{ playerData: PlayerData }>\n ) => {\n const { playerData } = event.nativeEvent;\n onData?.(playerData);\n };\n\n const onTextCueHandler = (\n event: NativeSyntheticEvent<{ textCue: TextCue }>\n ) => {\n const { textCue } = event.nativeEvent;\n onTextCue?.(textCue);\n };\n\n const onVideoStatisticsHandler = (\n event: NativeSyntheticEvent<{ videoData: VideoData }>\n ) => {\n const { videoData } = event.nativeEvent;\n const statistics: VideoData = {\n ...videoData,\n duration: parseDuration(videoData.duration),\n };\n onVideoStatistics?.(statistics);\n };\n\n const onTextMetadataCueHandler = (\n event: NativeSyntheticEvent<{ textMetadataCue: TextMetadataCue }>\n ) => {\n const { textMetadataCue } = event.nativeEvent;\n onTextMetadataCue?.(textMetadataCue);\n };\n\n const onProgressHandler = (\n event: NativeSyntheticEvent<{ position: number }>\n ) => {\n const { position } = event.nativeEvent;\n onProgress?.(position);\n };\n\n const onErrorHandler = (event: NativeSyntheticEvent<{ error: string }>) => {\n const { error } = event.nativeEvent;\n onError?.(error);\n };\n\n const onTimePointHandler = (\n event: NativeSyntheticEvent<{ position: number }>\n ) => {\n const { position } = event.nativeEvent;\n onTimePoint?.(position);\n };\n\n return (\n <View style={[styles.container, style]} ref={ref as any}>\n <IVSPlayer\n testID=\"IVSPlayer\"\n muted={muted}\n liveLowLatency={liveLowLatency}\n style={styles.mediaPlayer}\n ref={mediaPlayerRef}\n playbackRate={playbackRate}\n streamUrl={streamUrl}\n logLevel={logLevel}\n progressInterval={progressInterval}\n volume={volume}\n quality={quality}\n initialBufferDuration={initialBufferDuration}\n autoMaxQuality={autoMaxQuality}\n autoQualityMode={autoQualityMode}\n breakpoints={breakpoints}\n maxBitrate={maxBitrate}\n onVideoStatistics={\n onVideoStatistics ? onVideoStatisticsHandler : undefined\n }\n onData={onDataHandler}\n onSeek={onSeekHandler}\n onQualityChange={onQualityChangeHandler}\n onPlayerStateChange={onPlayerStateChangeHandler}\n onDurationChange={onDurationChangeHandler}\n onRebuffering={onRebuffering}\n onLoadStart={onLoadStart}\n onLoad={onLoadHandler}\n onTextCue={onTextCueHandler}\n onTextMetadataCue={onTextMetadataCueHandler}\n onProgress={onProgressHandler}\n onLiveLatencyChange={\n onLiveLatencyChange ? onLiveLatencyChangeHandler : undefined\n }\n onError={onErrorHandler}\n onTimePoint={onTimePointHandler}\n />\n <View style={styles.children}>{children}</View>\n </View>\n );\n }\n);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n mediaPlayer: {\n flex: 1,\n },\n children: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n },\n});\n\nexport default IVSPlayerContainer;\n"]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PlayerState = exports.LogLevel = void 0;
7
+ let LogLevel;
8
+ exports.LogLevel = LogLevel;
9
+
10
+ (function (LogLevel) {
11
+ LogLevel[LogLevel["IVSLogLevelDebug"] = 0] = "IVSLogLevelDebug";
12
+ LogLevel[LogLevel["IVSLogLevelInfo"] = 1] = "IVSLogLevelInfo";
13
+ LogLevel[LogLevel["IVSLogLevelWarning"] = 2] = "IVSLogLevelWarning";
14
+ LogLevel[LogLevel["IVSLogLevelError"] = 3] = "IVSLogLevelError";
15
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
16
+
17
+ let PlayerState;
18
+ exports.PlayerState = PlayerState;
19
+
20
+ (function (PlayerState) {
21
+ PlayerState["Idle"] = "Idle";
22
+ PlayerState["Ready"] = "Ready";
23
+ PlayerState["Buffering"] = "Buffering";
24
+ PlayerState["Playing"] = "Playing";
25
+ PlayerState["Ended"] = "Ended";
26
+ })(PlayerState || (exports.PlayerState = PlayerState = {}));
27
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Flowtype definitions for enums
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ declare export var LogLevel: {|
9
+ +IVSLogLevelDebug: 0, // 0
10
+ +IVSLogLevelInfo: 1, // 1
11
+ +IVSLogLevelWarning: 2, // 2
12
+ +IVSLogLevelError: 3, // 3
13
+ |};
14
+
15
+ declare export var PlayerState: {|
16
+ +Idle: 0, // 0
17
+ +Ready: 1, // 1
18
+ +Buffering: 2, // 2
19
+ +Playing: 3, // 3
20
+ +Ended: 4, // 4
21
+ |};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["enums.ts"],"names":["LogLevel","PlayerState"],"mappings":";;;;;;IAAYA,Q;;;WAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;GAAAA,Q,wBAAAA,Q;;IAOAC,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W","sourcesContent":["export enum LogLevel {\n IVSLogLevelDebug,\n IVSLogLevelInfo,\n IVSLogLevelWarning,\n IVSLogLevelError,\n}\n\nexport enum PlayerState {\n Idle = 'Idle',\n Ready = 'Ready',\n Buffering = 'Buffering',\n Playing = 'Playing',\n Ended = 'Ended',\n}\n"]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ exports.default = void 0;
8
+
9
+ var _enums = require("./enums");
10
+
11
+ Object.keys(_enums).forEach(function (key) {
12
+ if (key === "default" || key === "__esModule") return;
13
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
14
+ if (key in exports && exports[key] === _enums[key]) return;
15
+ Object.defineProperty(exports, key, {
16
+ enumerable: true,
17
+ get: function () {
18
+ return _enums[key];
19
+ }
20
+ });
21
+ });
22
+
23
+ var _types = require("./types");
24
+
25
+ Object.keys(_types).forEach(function (key) {
26
+ if (key === "default" || key === "__esModule") return;
27
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
28
+ if (key in exports && exports[key] === _types[key]) return;
29
+ Object.defineProperty(exports, key, {
30
+ enumerable: true,
31
+ get: function () {
32
+ return _types[key];
33
+ }
34
+ });
35
+ });
36
+
37
+ var _IVSPlayer = _interopRequireDefault(require("./IVSPlayer"));
38
+
39
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
+
41
+ var _default = _IVSPlayer.default;
42
+ exports.default = _default;
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Flowtype definitions for index
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ declare export * from './enums'
9
+ declare export * from './types'
10
+ import IVSPlayer from './IVSPlayer';
11
+ declare export default typeof IVSPlayer;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["IVSPlayer"],"mappings":";;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;;;eAEeA,kB","sourcesContent":["export * from './enums';\nexport * from './types';\nimport IVSPlayer from './IVSPlayer';\n\nexport default IVSPlayer;\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Flowtype definitions for types
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ export type Quality = {|
9
+ name: string,
10
+ codecs: string,
11
+ bitrate: number,
12
+ framerate: number,
13
+ width: number,
14
+ height: number,
15
+ |};
16
+ export type PlayerData = {|
17
+ qualities: Quality[],
18
+ version: string,
19
+ sessionId: string,
20
+ |};
21
+ export type VideoData = {|
22
+ bitrate: number,
23
+ duration: number | null,
24
+ framesDecoded: number | null,
25
+ framesDropped: number | null,
26
+ |};
27
+ export type TextCue = {|
28
+ type: string,
29
+ line: number,
30
+ size: number,
31
+ position: number,
32
+ text: string,
33
+ textAlignment: string,
34
+ |};
35
+ export type TextMetadataCue = {|
36
+ type: string,
37
+ text: string,
38
+ textDescription: string,
39
+ |};
40
+ export type IVSPlayerRef = {|
41
+ play: () => void,
42
+ pause: () => void,
43
+ seekTo: (position: number) => void,
44
+ |};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,229 @@
1
+ import React, { useCallback, useEffect, useImperativeHandle, useRef } from 'react';
2
+ import { requireNativeComponent, StyleSheet, UIManager, findNodeHandle, View } from 'react-native';
3
+ const VIEW_NAME = 'AmazonIvs';
4
+ const IVSPlayer = requireNativeComponent(VIEW_NAME);
5
+
6
+ function parseDuration(duration) {
7
+ if (duration == null) {
8
+ return duration;
9
+ }
10
+
11
+ return duration > 0 ? duration : Infinity;
12
+ }
13
+
14
+ const IVSPlayerContainer = /*#__PURE__*/React.forwardRef(({
15
+ style,
16
+ streamUrl,
17
+ paused,
18
+ muted,
19
+ autoplay = true,
20
+ liveLowLatency,
21
+ playbackRate,
22
+ logLevel,
23
+ progressInterval,
24
+ volume,
25
+ quality,
26
+ autoMaxQuality,
27
+ autoQualityMode,
28
+ breakpoints = [],
29
+ maxBitrate,
30
+ initialBufferDuration,
31
+ onSeek,
32
+ onData,
33
+ onVideoStatistics,
34
+ onPlayerStateChange,
35
+ onDurationChange,
36
+ onQualityChange,
37
+ onRebuffering,
38
+ onLoadStart,
39
+ onLoad,
40
+ onLiveLatencyChange,
41
+ onTextCue,
42
+ onTextMetadataCue,
43
+ onProgress,
44
+ onError,
45
+ onTimePoint,
46
+ children
47
+ }, ref) => {
48
+ const mediaPlayerRef = useRef(null);
49
+ const initialized = useRef(false);
50
+ const play = useCallback(() => {
51
+ UIManager.dispatchViewManagerCommand(findNodeHandle(mediaPlayerRef.current), UIManager.getViewManagerConfig(VIEW_NAME).Commands.play, []);
52
+ }, []);
53
+ const pause = useCallback(() => {
54
+ UIManager.dispatchViewManagerCommand(findNodeHandle(mediaPlayerRef.current), UIManager.getViewManagerConfig(VIEW_NAME).Commands.pause, []);
55
+ }, []);
56
+ const seekTo = useCallback(value => {
57
+ UIManager.dispatchViewManagerCommand(findNodeHandle(mediaPlayerRef.current), UIManager.getViewManagerConfig(VIEW_NAME).Commands.seekTo, [value]);
58
+ }, []);
59
+ useEffect(() => {
60
+ if (initialized.current || autoplay) {
61
+ if (paused) {
62
+ pause();
63
+ } else {
64
+ play();
65
+ }
66
+ }
67
+
68
+ initialized.current = true;
69
+ }, [pause, paused, play, autoplay]);
70
+ useImperativeHandle(ref, () => ({
71
+ play,
72
+ pause,
73
+ seekTo
74
+ }), [play, pause, seekTo]);
75
+
76
+ const onSeekHandler = event => {
77
+ const {
78
+ position
79
+ } = event.nativeEvent;
80
+ onSeek === null || onSeek === void 0 ? void 0 : onSeek(position);
81
+ };
82
+
83
+ const onPlayerStateChangeHandler = event => {
84
+ const {
85
+ state
86
+ } = event.nativeEvent;
87
+ onPlayerStateChange === null || onPlayerStateChange === void 0 ? void 0 : onPlayerStateChange(state);
88
+ };
89
+
90
+ const onDurationChangeHandler = event => {
91
+ const {
92
+ duration
93
+ } = event.nativeEvent;
94
+ onDurationChange === null || onDurationChange === void 0 ? void 0 : onDurationChange(parseDuration(duration));
95
+ };
96
+
97
+ const onQualityChangeHandler = event => {
98
+ const {
99
+ quality: newQuality
100
+ } = event.nativeEvent;
101
+ onQualityChange === null || onQualityChange === void 0 ? void 0 : onQualityChange(newQuality);
102
+ };
103
+
104
+ const onLoadHandler = event => {
105
+ if (!paused) {
106
+ play();
107
+ } else {
108
+ pause();
109
+ }
110
+
111
+ const {
112
+ duration
113
+ } = event.nativeEvent;
114
+ onLoad === null || onLoad === void 0 ? void 0 : onLoad(parseDuration(duration));
115
+ };
116
+
117
+ const onLiveLatencyChangeHandler = event => {
118
+ const {
119
+ liveLatency
120
+ } = event.nativeEvent;
121
+ onLiveLatencyChange === null || onLiveLatencyChange === void 0 ? void 0 : onLiveLatencyChange(liveLatency);
122
+ };
123
+
124
+ const onDataHandler = event => {
125
+ const {
126
+ playerData
127
+ } = event.nativeEvent;
128
+ onData === null || onData === void 0 ? void 0 : onData(playerData);
129
+ };
130
+
131
+ const onTextCueHandler = event => {
132
+ const {
133
+ textCue
134
+ } = event.nativeEvent;
135
+ onTextCue === null || onTextCue === void 0 ? void 0 : onTextCue(textCue);
136
+ };
137
+
138
+ const onVideoStatisticsHandler = event => {
139
+ const {
140
+ videoData
141
+ } = event.nativeEvent;
142
+ const statistics = { ...videoData,
143
+ duration: parseDuration(videoData.duration)
144
+ };
145
+ onVideoStatistics === null || onVideoStatistics === void 0 ? void 0 : onVideoStatistics(statistics);
146
+ };
147
+
148
+ const onTextMetadataCueHandler = event => {
149
+ const {
150
+ textMetadataCue
151
+ } = event.nativeEvent;
152
+ onTextMetadataCue === null || onTextMetadataCue === void 0 ? void 0 : onTextMetadataCue(textMetadataCue);
153
+ };
154
+
155
+ const onProgressHandler = event => {
156
+ const {
157
+ position
158
+ } = event.nativeEvent;
159
+ onProgress === null || onProgress === void 0 ? void 0 : onProgress(position);
160
+ };
161
+
162
+ const onErrorHandler = event => {
163
+ const {
164
+ error
165
+ } = event.nativeEvent;
166
+ onError === null || onError === void 0 ? void 0 : onError(error);
167
+ };
168
+
169
+ const onTimePointHandler = event => {
170
+ const {
171
+ position
172
+ } = event.nativeEvent;
173
+ onTimePoint === null || onTimePoint === void 0 ? void 0 : onTimePoint(position);
174
+ };
175
+
176
+ return /*#__PURE__*/React.createElement(View, {
177
+ style: [styles.container, style],
178
+ ref: ref
179
+ }, /*#__PURE__*/React.createElement(IVSPlayer, {
180
+ testID: "IVSPlayer",
181
+ muted: muted,
182
+ liveLowLatency: liveLowLatency,
183
+ style: styles.mediaPlayer,
184
+ ref: mediaPlayerRef,
185
+ playbackRate: playbackRate,
186
+ streamUrl: streamUrl,
187
+ logLevel: logLevel,
188
+ progressInterval: progressInterval,
189
+ volume: volume,
190
+ quality: quality,
191
+ initialBufferDuration: initialBufferDuration,
192
+ autoMaxQuality: autoMaxQuality,
193
+ autoQualityMode: autoQualityMode,
194
+ breakpoints: breakpoints,
195
+ maxBitrate: maxBitrate,
196
+ onVideoStatistics: onVideoStatistics ? onVideoStatisticsHandler : undefined,
197
+ onData: onDataHandler,
198
+ onSeek: onSeekHandler,
199
+ onQualityChange: onQualityChangeHandler,
200
+ onPlayerStateChange: onPlayerStateChangeHandler,
201
+ onDurationChange: onDurationChangeHandler,
202
+ onRebuffering: onRebuffering,
203
+ onLoadStart: onLoadStart,
204
+ onLoad: onLoadHandler,
205
+ onTextCue: onTextCueHandler,
206
+ onTextMetadataCue: onTextMetadataCueHandler,
207
+ onProgress: onProgressHandler,
208
+ onLiveLatencyChange: onLiveLatencyChange ? onLiveLatencyChangeHandler : undefined,
209
+ onError: onErrorHandler,
210
+ onTimePoint: onTimePointHandler
211
+ }), /*#__PURE__*/React.createElement(View, {
212
+ style: styles.children
213
+ }, children));
214
+ });
215
+ const styles = StyleSheet.create({
216
+ container: {
217
+ flex: 1
218
+ },
219
+ mediaPlayer: {
220
+ flex: 1
221
+ },
222
+ children: {
223
+ position: 'absolute',
224
+ width: '100%',
225
+ height: '100%'
226
+ }
227
+ });
228
+ export default IVSPlayerContainer;
229
+ //# sourceMappingURL=IVSPlayer.js.map
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Flowtype definitions for IVSPlayer
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ import * as React from 'react';
9
+ import type { ViewStyleProp } from 'react-native/Libraries/StyleSheet/StyleSheet';
10
+ import typeof { LogLevel } from './enums';
11
+ import type {
12
+ Quality,
13
+ PlayerData,
14
+ TextCue,
15
+ TextMetadataCue,
16
+ VideoData,
17
+ IVSPlayerRef,
18
+ } from './types';
19
+
20
+ declare type Props = {|
21
+ style?: ViewStyleProp,
22
+ paused?: boolean,
23
+ muted?: boolean,
24
+ autoplay?: boolean,
25
+ streamUrl?: string,
26
+ liveLowLatency?: boolean,
27
+ playbackRate?: number,
28
+ logLevel?: LogLevel,
29
+ progressInterval?: number,
30
+ volume?: number,
31
+ quality?: Quality | null,
32
+ autoMaxQuality?: Quality | null,
33
+ autoQualityMode?: boolean,
34
+ breakpoints?: number[],
35
+ maxBitrate?: number,
36
+ onSeek?: (position: number) => void,
37
+ onData?: (data: PlayerData) => void,
38
+ onVideoStatistics?: (data: VideoData) => void,
39
+ onPlayerStateChange?: (state: number) => void,
40
+ onDurationChange?: (duration: number | null) => void,
41
+ onQualityChange?: (quality: Quality | null) => void,
42
+ onRebuffering?: () => void,
43
+ onLoadStart?: () => void,
44
+ onLoad?: (duration: number | null) => void,
45
+ onLiveLatencyChange?: (liveLatency: number) => void,
46
+ onTextCue?: (textCue: TextCue) => void,
47
+ onTextMetadataCue?: (textMetadataCue: TextMetadataCue) => void,
48
+ onProgress?: (progress: number) => void,
49
+ onError?: (error: string) => void,
50
+ onTimePoint?: (position: number) => void,
51
+ |};
52
+ declare var IVSPlayerContainer: React.AbstractComponent<Props, IVSPlayerRef>;
53
+ declare export default typeof IVSPlayerContainer;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["IVSPlayer.tsx"],"names":["React","useCallback","useEffect","useImperativeHandle","useRef","requireNativeComponent","StyleSheet","UIManager","findNodeHandle","View","VIEW_NAME","IVSPlayer","parseDuration","duration","Infinity","IVSPlayerContainer","forwardRef","style","streamUrl","paused","muted","autoplay","liveLowLatency","playbackRate","logLevel","progressInterval","volume","quality","autoMaxQuality","autoQualityMode","breakpoints","maxBitrate","initialBufferDuration","onSeek","onData","onVideoStatistics","onPlayerStateChange","onDurationChange","onQualityChange","onRebuffering","onLoadStart","onLoad","onLiveLatencyChange","onTextCue","onTextMetadataCue","onProgress","onError","onTimePoint","children","ref","mediaPlayerRef","initialized","play","dispatchViewManagerCommand","current","getViewManagerConfig","Commands","pause","seekTo","value","onSeekHandler","event","position","nativeEvent","onPlayerStateChangeHandler","state","onDurationChangeHandler","onQualityChangeHandler","newQuality","onLoadHandler","onLiveLatencyChangeHandler","liveLatency","onDataHandler","playerData","onTextCueHandler","textCue","onVideoStatisticsHandler","videoData","statistics","onTextMetadataCueHandler","textMetadataCue","onProgressHandler","onErrorHandler","error","onTimePointHandler","styles","container","mediaPlayer","undefined","create","flex","width","height"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport {\n requireNativeComponent,\n ViewStyle,\n StyleSheet,\n UIManager,\n findNodeHandle,\n View,\n NativeSyntheticEvent,\n} from 'react-native';\nimport type { LogLevel, PlayerState } from './enums';\nimport type {\n Quality,\n PlayerData,\n TextCue,\n TextMetadataCue,\n VideoData,\n IVSPlayerRef,\n} from './types';\n\ntype IVSPlayerProps = {\n style?: ViewStyle;\n testID?: string;\n ref: any;\n muted?: boolean;\n liveLowLatency?: boolean;\n playbackRate?: number;\n streamUrl?: string;\n logLevel?: LogLevel;\n progressInterval?: number;\n volume?: number;\n quality?: Quality | null;\n autoMaxQuality?: Quality | null;\n autoQualityMode?: boolean;\n breakpoints?: number[];\n maxBitrate?: number;\n initialBufferDuration?: number;\n onSeek?(event: NativeSyntheticEvent<{ position: number }>): void;\n onData?(event: NativeSyntheticEvent<{ playerData: PlayerData }>): void;\n onVideoStatistics?(\n event: NativeSyntheticEvent<{ videoData: VideoData }>\n ): void;\n onPlayerStateChange?(\n event: NativeSyntheticEvent<{ state: PlayerState }>\n ): void;\n onDurationChange?(\n event: NativeSyntheticEvent<{ duration: number | null }>\n ): void;\n onQualityChange?(event: NativeSyntheticEvent<{ quality: Quality }>): void;\n onRebuffering?(): void;\n onLoadStart?(): void;\n onLoad?(event: NativeSyntheticEvent<{ duration: number | null }>): void;\n onLiveLatencyChange?(\n event: NativeSyntheticEvent<{ liveLatency: number }>\n ): void;\n onTextCue?(event: NativeSyntheticEvent<{ textCue: TextCue }>): void;\n onTextMetadataCue?(\n event: NativeSyntheticEvent<{ textMetadataCue: TextMetadataCue }>\n ): void;\n onProgress?(event: NativeSyntheticEvent<{ position: number }>): void;\n onError?(event: NativeSyntheticEvent<{ error: string }>): void;\n onTimePoint?(event: NativeSyntheticEvent<{ position: number }>): void;\n};\n\nconst VIEW_NAME = 'AmazonIvs';\n\nconst IVSPlayer = requireNativeComponent<IVSPlayerProps>(VIEW_NAME);\n\ntype Props = {\n style?: ViewStyle;\n testID?: string;\n paused?: boolean;\n muted?: boolean;\n autoplay?: boolean;\n streamUrl?: string;\n liveLowLatency?: boolean;\n playbackRate?: number;\n logLevel?: LogLevel;\n progressInterval?: number;\n volume?: number;\n quality?: Quality | null;\n autoMaxQuality?: Quality | null;\n autoQualityMode?: boolean;\n breakpoints?: number[];\n maxBitrate?: number;\n initialBufferDuration?: number;\n onSeek?(position: number): void;\n onData?(data: PlayerData): void;\n onVideoStatistics?(data: VideoData): void;\n onPlayerStateChange?(state: PlayerState): void;\n onDurationChange?(duration: number | null): void;\n onQualityChange?(quality: Quality | null): void;\n onRebuffering?(): void;\n onLoadStart?(): void;\n onLoad?(duration: number | null): void;\n onLiveLatencyChange?(liveLatency: number): void;\n onTextCue?(textCue: TextCue): void;\n onTextMetadataCue?(textMetadataCue: TextMetadataCue): void;\n onProgress?(progress: number): void;\n onError?(error: string): void;\n onTimePoint?(position: number): void;\n children?: React.ReactNode;\n};\n\nfunction parseDuration(duration: number | null) {\n if (duration == null) {\n return duration;\n }\n return duration > 0 ? duration : Infinity;\n}\n\nconst IVSPlayerContainer = React.forwardRef<IVSPlayerRef, Props>(\n (\n {\n style,\n streamUrl,\n paused,\n muted,\n autoplay = true,\n liveLowLatency,\n playbackRate,\n logLevel,\n progressInterval,\n volume,\n quality,\n autoMaxQuality,\n autoQualityMode,\n breakpoints = [],\n maxBitrate,\n initialBufferDuration,\n onSeek,\n onData,\n onVideoStatistics,\n onPlayerStateChange,\n onDurationChange,\n onQualityChange,\n onRebuffering,\n onLoadStart,\n onLoad,\n onLiveLatencyChange,\n onTextCue,\n onTextMetadataCue,\n onProgress,\n onError,\n onTimePoint,\n children,\n },\n ref\n ) => {\n const mediaPlayerRef = useRef(null);\n const initialized = useRef(false);\n\n const play = useCallback(() => {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(mediaPlayerRef.current),\n UIManager.getViewManagerConfig(VIEW_NAME).Commands.play,\n []\n );\n }, []);\n\n const pause = useCallback(() => {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(mediaPlayerRef.current),\n UIManager.getViewManagerConfig(VIEW_NAME).Commands.pause,\n []\n );\n }, []);\n\n const seekTo = useCallback((value) => {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(mediaPlayerRef.current),\n\n UIManager.getViewManagerConfig(VIEW_NAME).Commands.seekTo,\n [value]\n );\n }, []);\n\n useEffect(() => {\n if (initialized.current || autoplay) {\n if (paused) {\n pause();\n } else {\n play();\n }\n }\n initialized.current = true;\n }, [pause, paused, play, autoplay]);\n\n useImperativeHandle(\n ref,\n () => ({\n play,\n pause,\n seekTo,\n }),\n [play, pause, seekTo]\n );\n\n const onSeekHandler = (\n event: NativeSyntheticEvent<{ position: number }>\n ) => {\n const { position } = event.nativeEvent;\n onSeek?.(position);\n };\n\n const onPlayerStateChangeHandler = (\n event: NativeSyntheticEvent<{ state: PlayerState }>\n ) => {\n const { state } = event.nativeEvent;\n onPlayerStateChange?.(state);\n };\n\n const onDurationChangeHandler = (\n event: NativeSyntheticEvent<{ duration: number | null }>\n ) => {\n const { duration } = event.nativeEvent;\n\n onDurationChange?.(parseDuration(duration));\n };\n\n const onQualityChangeHandler = (\n event: NativeSyntheticEvent<{ quality: Quality }>\n ) => {\n const { quality: newQuality } = event.nativeEvent;\n onQualityChange?.(newQuality);\n };\n\n const onLoadHandler = (\n event: NativeSyntheticEvent<{\n duration: number | null;\n }>\n ) => {\n if (!paused) {\n play();\n } else {\n pause();\n }\n\n const { duration } = event.nativeEvent;\n\n onLoad?.(parseDuration(duration));\n };\n\n const onLiveLatencyChangeHandler = (\n event: NativeSyntheticEvent<{ liveLatency: number }>\n ) => {\n const { liveLatency } = event.nativeEvent;\n onLiveLatencyChange?.(liveLatency);\n };\n\n const onDataHandler = (\n event: NativeSyntheticEvent<{ playerData: PlayerData }>\n ) => {\n const { playerData } = event.nativeEvent;\n onData?.(playerData);\n };\n\n const onTextCueHandler = (\n event: NativeSyntheticEvent<{ textCue: TextCue }>\n ) => {\n const { textCue } = event.nativeEvent;\n onTextCue?.(textCue);\n };\n\n const onVideoStatisticsHandler = (\n event: NativeSyntheticEvent<{ videoData: VideoData }>\n ) => {\n const { videoData } = event.nativeEvent;\n const statistics: VideoData = {\n ...videoData,\n duration: parseDuration(videoData.duration),\n };\n onVideoStatistics?.(statistics);\n };\n\n const onTextMetadataCueHandler = (\n event: NativeSyntheticEvent<{ textMetadataCue: TextMetadataCue }>\n ) => {\n const { textMetadataCue } = event.nativeEvent;\n onTextMetadataCue?.(textMetadataCue);\n };\n\n const onProgressHandler = (\n event: NativeSyntheticEvent<{ position: number }>\n ) => {\n const { position } = event.nativeEvent;\n onProgress?.(position);\n };\n\n const onErrorHandler = (event: NativeSyntheticEvent<{ error: string }>) => {\n const { error } = event.nativeEvent;\n onError?.(error);\n };\n\n const onTimePointHandler = (\n event: NativeSyntheticEvent<{ position: number }>\n ) => {\n const { position } = event.nativeEvent;\n onTimePoint?.(position);\n };\n\n return (\n <View style={[styles.container, style]} ref={ref as any}>\n <IVSPlayer\n testID=\"IVSPlayer\"\n muted={muted}\n liveLowLatency={liveLowLatency}\n style={styles.mediaPlayer}\n ref={mediaPlayerRef}\n playbackRate={playbackRate}\n streamUrl={streamUrl}\n logLevel={logLevel}\n progressInterval={progressInterval}\n volume={volume}\n quality={quality}\n initialBufferDuration={initialBufferDuration}\n autoMaxQuality={autoMaxQuality}\n autoQualityMode={autoQualityMode}\n breakpoints={breakpoints}\n maxBitrate={maxBitrate}\n onVideoStatistics={\n onVideoStatistics ? onVideoStatisticsHandler : undefined\n }\n onData={onDataHandler}\n onSeek={onSeekHandler}\n onQualityChange={onQualityChangeHandler}\n onPlayerStateChange={onPlayerStateChangeHandler}\n onDurationChange={onDurationChangeHandler}\n onRebuffering={onRebuffering}\n onLoadStart={onLoadStart}\n onLoad={onLoadHandler}\n onTextCue={onTextCueHandler}\n onTextMetadataCue={onTextMetadataCueHandler}\n onProgress={onProgressHandler}\n onLiveLatencyChange={\n onLiveLatencyChange ? onLiveLatencyChangeHandler : undefined\n }\n onError={onErrorHandler}\n onTimePoint={onTimePointHandler}\n />\n <View style={styles.children}>{children}</View>\n </View>\n );\n }\n);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n mediaPlayer: {\n flex: 1,\n },\n children: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n },\n});\n\nexport default IVSPlayerContainer;\n"]}
@@ -0,0 +1,19 @@
1
+ export let LogLevel;
2
+
3
+ (function (LogLevel) {
4
+ LogLevel[LogLevel["IVSLogLevelDebug"] = 0] = "IVSLogLevelDebug";
5
+ LogLevel[LogLevel["IVSLogLevelInfo"] = 1] = "IVSLogLevelInfo";
6
+ LogLevel[LogLevel["IVSLogLevelWarning"] = 2] = "IVSLogLevelWarning";
7
+ LogLevel[LogLevel["IVSLogLevelError"] = 3] = "IVSLogLevelError";
8
+ })(LogLevel || (LogLevel = {}));
9
+
10
+ export let PlayerState;
11
+
12
+ (function (PlayerState) {
13
+ PlayerState["Idle"] = "Idle";
14
+ PlayerState["Ready"] = "Ready";
15
+ PlayerState["Buffering"] = "Buffering";
16
+ PlayerState["Playing"] = "Playing";
17
+ PlayerState["Ended"] = "Ended";
18
+ })(PlayerState || (PlayerState = {}));
19
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Flowtype definitions for enums
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ declare export var LogLevel: {|
9
+ +IVSLogLevelDebug: 0, // 0
10
+ +IVSLogLevelInfo: 1, // 1
11
+ +IVSLogLevelWarning: 2, // 2
12
+ +IVSLogLevelError: 3, // 3
13
+ |};
14
+
15
+ declare export var PlayerState: {|
16
+ +Idle: 0, // 0
17
+ +Ready: 1, // 1
18
+ +Buffering: 2, // 2
19
+ +Playing: 3, // 3
20
+ +Ended: 4, // 4
21
+ |};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["enums.ts"],"names":["LogLevel","PlayerState"],"mappings":"AAAA,WAAYA,QAAZ;;WAAYA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;GAAAA,Q,KAAAA,Q;;AAOZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum LogLevel {\n IVSLogLevelDebug,\n IVSLogLevelInfo,\n IVSLogLevelWarning,\n IVSLogLevelError,\n}\n\nexport enum PlayerState {\n Idle = 'Idle',\n Ready = 'Ready',\n Buffering = 'Buffering',\n Playing = 'Playing',\n Ended = 'Ended',\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export * from './enums';
2
+ export * from './types';
3
+ import IVSPlayer from './IVSPlayer';
4
+ export default IVSPlayer;
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Flowtype definitions for index
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ declare export * from './enums'
9
+ declare export * from './types'
10
+ import IVSPlayer from './IVSPlayer';
11
+ declare export default typeof IVSPlayer;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["IVSPlayer"],"mappings":"AAAA,cAAc,SAAd;AACA,cAAc,SAAd;AACA,OAAOA,SAAP,MAAsB,aAAtB;AAEA,eAAeA,SAAf","sourcesContent":["export * from './enums';\nexport * from './types';\nimport IVSPlayer from './IVSPlayer';\n\nexport default IVSPlayer;\n"]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Flowtype definitions for types
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.13.0
5
+ * @flow
6
+ */
7
+
8
+ export type Quality = {|
9
+ name: string,
10
+ codecs: string,
11
+ bitrate: number,
12
+ framerate: number,
13
+ width: number,
14
+ height: number,
15
+ |};
16
+ export type PlayerData = {|
17
+ qualities: Quality[],
18
+ version: string,
19
+ sessionId: string,
20
+ |};
21
+ export type VideoData = {|
22
+ bitrate: number,
23
+ duration: number | null,
24
+ framesDecoded: number | null,
25
+ framesDropped: number | null,
26
+ |};
27
+ export type TextCue = {|
28
+ type: string,
29
+ line: number,
30
+ size: number,
31
+ position: number,
32
+ text: string,
33
+ textAlignment: string,
34
+ |};
35
+ export type TextMetadataCue = {|
36
+ type: string,
37
+ text: string,
38
+ textDescription: string,
39
+ |};
40
+ export type IVSPlayerRef = {|
41
+ play: () => void,
42
+ pause: () => void,
43
+ seekTo: (position: number) => void,
44
+ |};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}