【问题标题】:Expo / React Native: Video Failing to ResizeExpo / React Native:视频无法调整大小
【发布时间】:2019-04-28 20:26:46
【问题描述】:

我正在使用带有 React Native 的 Expo,在 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

但是,如果您将视频加载进去,它实际上适合整个窗口,并且按我想要的方式调整大小,但只有半秒。之后它会立即变小,就像屏幕截图中一样。我也试过covercenter,但没有奏效。任何帮助将不胜感激。

编辑:更多细节:

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

对于图像,我通过以下方式使用来自 React Native 的默认 Image 组件:<Image style={styles.image} source={{ uri: data.url }} resizeMode="contain" />

目前styles.imagesstyles.video 相同。

【问题讨论】:

  • 应该以像素为单位指定高度吗?高度:650px
  • 请分享您的屏幕设计示例或指明您想要放置视频播放器的确切位置!
  • 另外,应该是 window.innerWidth 吗?而不是 window.width w3schools.com/jsref/prop_win_innerheight.asp
  • @Ron 我在原始帖子中添加了一些澄清细节,并附有大致应该是什么样子的屏幕截图。
  • @CarolMcKay using numbers / "window.width" 适用于 React Native,至少根据我的经验/据我所知。

标签: javascript css react-native video expo


【解决方案1】:

resizeMode="contain" 用于视频

还有flex:1 风格

【讨论】:

  • 你的答案一点都不清楚。能否请您详细说明。
  • 需要设置视频“resizeMode”的道具。在 IOS 中它默认为“包含”,但对于 android,我发现它没有并且需要明确设置,否则视频将不会缩放到它所在的视图。
【解决方案2】:

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

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 !

希望我能帮助你。如果需要更多帮助,请发表评论。

【讨论】:

  • 感谢您的回复,但是当我尝试这个实现时,我发现如果我将高度设置为 100% 或自动,视频根本无法播放。视频元素刚刚消失。
  • 好的,直接使用我上面的代码并检查。不要给出高度。
  • 我没有给出高度时结果相同,组件只是消失了,“下一步”按钮跳转到页面顶部(因为组件似乎有0高度)
  • 我又试了一次,还是不行。这就像无视我告诉它伸展,而是仅以原始尺寸播放。
猜你喜欢
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2014-04-06
相关资源
最近更新 更多