我有两个来自https://www.npmjs.com/package/react-native-video的视频,我没有激活控件,我的目的是通过按下按钮来激活和取消激活视频。我用状态来做,我的问题是当我按下按钮暂停或播放视频时,所有视频都播放,而不仅仅是一个。
我在JSON中有一个视频列表,并迭代所有这些视频。
下面是我的代码片段:
const [paused, setPaused] = useState(false);
const playVideo = () => {
setPaused(!paused);
}
{videos.map((video) => (
<Video
source={{ uri: video.video }}
rate={1.0}
volume={1.0}
resizeMode="cover"
style={styles.video}
paused={paused}
onEnd={() => setPaused(true)}
/>
{paused && (
<View style={styles.videoPause}>
<Text style={styles.title}>{video.titulo}</Text>
<Text style={styles.description}>{video.descripcion}</Text>
<TouchableOpacity style={styles.playButton} onPress={() => playVideo()}>
<CustomIcon name="play" size={90} color={'#fff'} />
</TouchableOpacity>
</View>
)}
))}
2条答案
按热度按时间brtdzjyr1#
问题是你的状态,你应该做一个组件来 Package 视频和管理播放/暂停状态。这样你就可以单独控制每个视频。
svgewumm2#
首先创建一个具有独立状态的组件,而不是像这里那样的全局组件。
示例:
)
然后像这样在页面中呈现它:
如果愿意,您还可以在组件内部声明样式,但这样就不需要将它们作为 prop 传递。