feat(android): add sample to test decoder capabilities
This commit is contained in:
parent
3a4cb7f6d9
commit
8408664600
@ -16,7 +16,7 @@ import {
|
|||||||
|
|
||||||
import { Picker } from '@react-native-picker/picker'
|
import { Picker } from '@react-native-picker/picker'
|
||||||
|
|
||||||
import Video, { TextTrackType } from 'react-native-video';
|
import Video, { VideoDecoderProperties, TextTrackType } from 'react-native-video';
|
||||||
|
|
||||||
class VideoPlayer extends Component {
|
class VideoPlayer extends Component {
|
||||||
|
|
||||||
@ -77,6 +77,28 @@ class VideoPlayer extends Component {
|
|||||||
video: Video;
|
video: Video;
|
||||||
seekPanResponder: PanResponder | undefined;
|
seekPanResponder: PanResponder | undefined;
|
||||||
|
|
||||||
|
popupInfo = () => {
|
||||||
|
VideoDecoderProperties.getWidevineLevel().then((widevineLevel: number) => {
|
||||||
|
VideoDecoderProperties.isHEVCSupported().then((hevcSupported: boolean) => {
|
||||||
|
VideoDecoderProperties.isCodecSupported('video/avc', 1920, 1080).then(
|
||||||
|
(avcSupported: boolean) => {
|
||||||
|
this.toast(
|
||||||
|
true,
|
||||||
|
'Widevine level: ' +
|
||||||
|
widevineLevel +
|
||||||
|
'\n hevc: ' +
|
||||||
|
(hevcSupported ? '' : 'NOT') +
|
||||||
|
'supported' +
|
||||||
|
'\n avc: ' +
|
||||||
|
(avcSupported ? '' : 'NOT') +
|
||||||
|
'supported',
|
||||||
|
)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
onLoad = (data: any) => {
|
onLoad = (data: any) => {
|
||||||
this.setState({ duration: data.duration, loading: false, });
|
this.setState({ duration: data.duration, loading: false, });
|
||||||
this.onAudioTracks(data.audioTracks)
|
this.onAudioTracks(data.audioTracks)
|
||||||
@ -288,6 +310,18 @@ class VideoPlayer extends Component {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderInfoControl() {
|
||||||
|
return (
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={() => {
|
||||||
|
this.popupInfo()
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Text style={[styles.controlOption]}>{'decoderInfo'}</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
renderFullScreenControl() {
|
renderFullScreenControl() {
|
||||||
return (
|
return (
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
@ -541,6 +575,9 @@ class VideoPlayer extends Component {
|
|||||||
</View>
|
</View>
|
||||||
<View style={styles.bottomControls}>
|
<View style={styles.bottomControls}>
|
||||||
<View style={styles.generalControls}>
|
<View style={styles.generalControls}>
|
||||||
|
<View style={styles.generalControls}>
|
||||||
|
<View style={styles.resizeModeControl}>{this.renderInfoControl()}</View>
|
||||||
|
</View>
|
||||||
<View style={styles.resizeModeControl}>{this.renderPause()}</View>
|
<View style={styles.resizeModeControl}>{this.renderPause()}</View>
|
||||||
<View style={styles.resizeModeControl}>
|
<View style={styles.resizeModeControl}>
|
||||||
{this.renderRepeatModeControl()}
|
{this.renderRepeatModeControl()}
|
||||||
|
Loading…
Reference in New Issue
Block a user