,可以通过以下步骤实现:
以下是一个示例代码:
import React, { useRef } from 'react';
import { FlatList, View, Text } from 'react-native';
import Video from 'react-native-video';
const data = [
{ id: 1, url: 'https://example.com/video1.mp4' },
{ id: 2, url: 'https://example.com/video2.mp4' },
{ id: 3, url: 'https://example.com/video3.mp4' },
// ...
];
const renderItem = ({ item }) => {
const videoRef = useRef(null);
return (
<View>
<Video ref={videoRef} source={{ uri: item.url }} />
{/* Other video item components */}
</View>
);
};
const onViewableItemsChanged = ({ viewableItems }) => {
viewableItems.forEach((item) => {
// Access the video reference and perform actions
if (item.isViewable && item.item.id === 1) {
item.item.videoRef.current.play();
} else {
item.item.videoRef.current.pause();
}
});
};
const VideoList = () => {
return (
<FlatList
data={data}
renderItem={renderItem}
onViewableItemsChanged={onViewableItemsChanged}
viewabilityConfig={{ viewAreaCoveragePercentThreshold: 50 }}
/>
);
};
export default VideoList;
在上面的示例中,我们使用了react-native-video库来渲染视频。每个视频项都有一个videoRef引用,通过ref属性将其绑定到Video组件上。在onViewableItemsChanged回调函数中,我们遍历可见项并根据需要调用视频播放器的方法。
请注意,这只是一个示例,具体的实现可能会根据你使用的视频播放器库和需求有所不同。在实际开发中,你可能还需要处理视频的加载、错误处理、播放状态管理等。
领取专属 10元无门槛券
手把手带您无忧上云