我在Android横向模式下播放视频时遇到了问题。它在iOS上运行正常。
我使用“react-native-video”加载和播放视频。禁用控件和全屏。我添加了自己的按钮来切换全屏。下面是我的全屏按钮功能。基本上,它会使用“react-native-orientation-locker”将屏幕锁定为横向,并调整视频的风格。在Android上,它确实旋转了,但视频没有显示在屏幕的全高。看起来宽度和高度没有改变,只是从纵向旋转。在视频的底部和左侧有一些黑色区域。有趣的是,当我试图将“controls={true}”设置为视频时,我发现视频播放器/控件以横向方式显示在屏幕的整个宽度上,但视频仍然在屏幕的角落里!而且这只发生在Android上。在iOS上运行良好。
环境:
- React Native0.61.5
- React原生视频5.0.2
- React-本机-定向-锁定器1.1.8
- React原生CLI(非Expo)
- 在Android模拟器(9.0 Pie API 28)和Android 10.0中的实际Android设备上进行测试
onPressFullScreen(){
if (this.state.isFullScreen == false){
Orientation.lockToLandscape();
this.setState({
isFullScreen: true,
fullModeText: 'Exit Full Screen',
cssContainerBgColor: 'black',
cssVideoControlTop: 0,
cssVideoMarginTop: 0,
reizeMode: 'cover',
cssVideoWidth: null,
cssVideoHeight: '100%',
cssVideoMarginLeft: 'auto',
cssVideoMarginRight: 'auto',
});
} else {
Orientation.unlockAllOrientations();
this.setState({
isFullScreen: false,
fullModeText: 'Full Screen',
cssContainerBgColor: 'red',
cssVideoControlTop: 50,
cssVideoMarginTop: 50,
reizeMode: 'cover',
cssVideoWidth: '100%',
cssVideoHeight: null,
cssVideoMarginLeft: '0%',
cssVideoMarginRight: '0%',
});
}
}
2条答案
按热度按时间9gm1akwq1#
这是我的解决方法
使用调整大小模式“包含”并且不为视频变换指定任何高度在样式宽度中为90度:screenHeight(尺寸.get('window').高度)
在这之后,由于某种原因,视频是一半的屏幕在右边
所以我加了一句
left:-屏幕宽度/2
我知道这可能不是最好的解决方案,但它目前正在工作
uurity8g2#
只需为视频标记给予width:'100% '