我很抱歉,如果这是一个新手问题,但我真的很沮丧在我的反应原生应用程序中设置背景视频。
从反应原生视频library的文档开始。 这是不好的文档还是我很难理解如何设置它?
我检查了其他java文件,他们已经有了他注意到的内容。 他对Windows的引用,我不知道他说的是什么或哪个用户案例应该做什么。
代码:
在我的登录组件中,我想要一个背景视频。 到目前为止,这是我的代码:
import React, { Component } from 'react';
import { Text, View, TouchableOpacity } from 'react-native';
import Video from 'react-native-video';
class LoginComponent extends Component {
render() {
const {
containerStyle,
introTextContainerStyle,
introTextStyle,
introTextHighlightStyle,
loginButtonsContainerStyle,
backgroundVideo
} = styles;
return (
<View style={ containerStyle }>
<Video source={{uri: "../assets/background.mp4"}}
ref={(ref) => {
this.player = ref
}}
rate={1.0}
volume={1.0}
muted={false}
resizeMode="cover"
repeat={true}
style={backgroundVideo}
/>
<View style={ introTextContainerStyle }>
<Text style={ introTextStyle }>
Tus problemas
</Text>
<Text style={ introTextHighlightStyle }>
Lisdos's
</Text>
<Text style={ introTextStyle }>
en un abrir y cerrar de ojos
</Text>
</View>
<View style={ loginButtonsContainerStyle }>
<TouchableOpacity>
<Text>Log In with Facebook</Text>
</TouchableOpacity>
</View>
</View>
);
}
}
const styles = {
containerStyle: {
height: '100%',
padding: 20
},
introTextContainerStyle: {
borderColor: 'black',
borderWidth: 1,
justifyContent: 'center',
alignItems: 'center',
height: '50%'
},
introTextStyle: {
fontSize: 24,
textAlign: 'center',
lineHeight: 40
},
introTextHighlightStyle: {
fontSize: 24,
textAlign: 'center',
fontWeight: '700',
color:'gold'
},
loginButtonsContainerStyle: {
borderColor: 'blue',
borderWidth: 1,
height: '50%',
justifyContent: 'center',
alignItems: 'center'
},
backgroundVideo: {
position: 'absolute',
top: 0,
left: 0,
bottom: 0,
right: 0,
}
}
export default LoginComponent;
没有标签,组件渲染得很好,但我一直在看臭名昭着的红色屏幕,说明:
Cannot read property 'Constants' of undefined
我在设置或标签中遗漏了什么?我的错了吗?
感谢任何帮助。
答案 0 :(得分:1)
问题在于您的source
标记。由于您使用RN Asset系统加载文件,因此您需要直接导入文件而不是使用uri
。
我通常这样做(我建议你这样做):
import background from '../assets/background.mp4';
...
<Video source={background}
...
/>
或者您可以直接在源代码中导入文件:
<Video source={require('../assets/background.mp4')}
...
/>