[Video] Download videos (#4886)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
This commit is contained in:
parent
b9975697e2
commit
11061b628e
19 changed files with 747 additions and 3 deletions
|
|
@ -0,0 +1,39 @@
|
|||
import React from 'react'
|
||||
import {StyleProp, ViewStyle} from 'react-native'
|
||||
import {requireNativeModule, requireNativeViewManager} from 'expo-modules-core'
|
||||
|
||||
import {HLSDownloadViewProps} from './types'
|
||||
|
||||
const NativeModule = requireNativeModule('ExpoHLSDownload')
|
||||
const NativeView: React.ComponentType<
|
||||
HLSDownloadViewProps & {
|
||||
ref: React.RefObject<any>
|
||||
style: StyleProp<ViewStyle>
|
||||
}
|
||||
> = requireNativeViewManager('ExpoHLSDownload')
|
||||
|
||||
export default class HLSDownloadView extends React.PureComponent<HLSDownloadViewProps> {
|
||||
private nativeRef: React.RefObject<any> = React.createRef()
|
||||
|
||||
constructor(props: HLSDownloadViewProps) {
|
||||
super(props)
|
||||
}
|
||||
|
||||
static isAvailable(): boolean {
|
||||
return NativeModule.isAvailable()
|
||||
}
|
||||
|
||||
async startDownloadAsync(sourceUrl: string): Promise<void> {
|
||||
return await this.nativeRef.current.startDownloadAsync(sourceUrl)
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<NativeView
|
||||
ref={this.nativeRef}
|
||||
style={{height: 0, width: 0}}
|
||||
{...this.props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue