Expo / React Native:视频无法调整大小

问题描述 投票:0回答:3

我正在使用 Expo 和 React Native,在 Galaxy S8+ 上的 Android 模拟器上进行测试。

我正在使用 Expo 库中的

Video
组件,因为我无法让
react-native-video
工作。

我正在使用以下代码:

<Video style={styles.video} source={{ uri: url }} isMuted={false} shouldPlay isLooping usePoster={true} useNativeControls={false} resizeMode="contain" />

styles.video
简直就是
{width: window.width, height: 650}

显示以下内容:Screenshot of issue

但是,如果您加载视频,它实际上适合整个窗口并且大小符合我的要求,但只有半秒钟。之后它立即变小,就像屏幕截图中那样。我也试过

cover
center
,但没有用。任何帮助将不胜感激。

编辑:更多细节:

我希望它看起来像这样,我正在为图像工作:Image of what it should look like

对于图像,我通过以下方式使用 React Native 中的默认

Image
组件:
<Image style={styles.image} source={{ uri: data.url }} resizeMode="contain" />

styles.images
目前与
styles.video
相同。

javascript css react-native video expo
3个回答
3
投票

resizeMode="contain"
视频

flex:1
的风格


0
投票

根据你的屏幕,你的前端可以这样设计。

return(
   <View style={{ width: "100%",height: "100%", flex: 1}}>
      <View style={{flex:0.7,justifyContent:'center'}}>
          <Video
           source={{ uri: url }}
           isMuted={false} 
           shouldPlay
           isLooping
           usePoster={true} 
           useNativeControls={false}
           />
       </View>
      <View style={{flex:0.1}}/>
      <TouchableOpacity style={{flex:0.1,paddingHorizontal:10}}>
           <View style={{width:"100%",justifyContent:"center",alignItems:"center",backgroundColor:"blue"}}>
            <Text>Next</Text>
           </View>
      </TouchableOpacity>
   </View>
 )

不要忘记导入 TouchableOpacity!


0
投票

您可以使用另一个属性

videoStyle
,它可以让您直接设置视频组件的样式。

将您的样式添加到该属性,它应该可以工作

<Video ... videoStyle={{width: window.width, height: 650}} />
© www.soinside.com 2019 - 2024. All rights reserved.