反应本地视频不显示播放器

时间:2019-09-29 00:09:18

标签: android ios react-native cross-platform react-native-video

在暂停使用该属性并将其放入另一个View时,视频播放器出现问题。 当我尝试将视频放置在两个视图之间(以测试滚动)时,播放器将隐藏第一个视图,而第二个视图则保持工作状态。滚动也可以正常工作。 虽然,当我删除第一个视图时,播放器只是消失了,而第二个视图则停留在那里。当我将paused = true放到播放器上时,同样的问题也会出现。我在这里遇到的另一个问题是,当我尝试使用Dimensions时,播放器没有显示。 这里的代码(不使用尺寸):

import Video from 'react-native-video';

import {
    Text,
    StyleSheet,
    View,
    Dimensions,
    ScrollView
} from 'react-native';

import api from '../services/api';
import JojoVideo from '../assets/jojo_op_1.mp4';
import Icon from 'react-native-vector-icons/FontAwesome';

export default function Videos({ navigation }) {
    /* state = {
         paused: true
     };


     position = {
         start: null,
         end: null
     };

    const [state, setState] = useState({ paused: true });
    const [postion, setPosition] = useState({ start: null, end: null });
    // const {width} = Dimensions.get('window');

    return (
        <View style={styles.container}>
            <ScrollView style={styles.scrollView}>
                {/* <View style={styles.fakeContent}></View> */}
                <Video
                    source={JojoVideo}
                    ref={(ref) => {
                        player = ref
                    }}
                    style={styles.video}
                    paused={state.paused}
                />
                <View style={styles.fakeContent}></View>
            </ScrollView>
        </View>
    );

}

StyleSheet:

const styles = StyleSheet.create({
    container: {
        flex: 1,
        backgroundColor: '#5EFFB1',
        justifyContent: 'center',
        alignItems: 'center',
        padding: 30
    },
    scrollView: {
        position: 'absolute',
        top: 0,
        left: 0,
        right: 0,
        bottom: 0,
        flex: 1
    },
    video: {
        position: 'absolute',
        top: 0,
        left: 0,
        bottom: 0,
        right: 0
    },
    fakeContent: {
        height: 850,
        backgroundColor: "#CCC",
        paddingTop: 250,
        alignItems: "center"
    },
});

当我尝试测试尺寸时,标签将如下所示:

               <Video
                   source={JojoVideo}
                   ref={(ref) => {
                       player = ref
                   }}
                   style={styles.video, width}
                   paused={state.paused}
               /> 

1 个答案:

答案 0 :(得分:0)

好吧,我解决了这个谜团,我只需要将Video标签放在View中,并在View和Video中放置相同的高度...现在它可以正常工作了!