expo-video-player
이 목록이 향후 증가 할 수 있으므로 FlatList 를 통해 비디오 구성 요소를 렌더링하는 응용 프로그램 이 있으며 가능한 한 최적화 된 상태로 유지하고 싶습니다.
내가 달성하고 싶은 것은 목록에서 하나의 비디오를 클릭하여 재생하면 다른 모든 비디오가 재생 중일 때 일시 중지된다는 것입니다. 모든 기능 구성 요소를 사용하고 있으며 일반적으로 FlatList에없는 경우 다음과 같은 비디오를 참조 할 수 있습니다.
const videoRef = useRef(null);
...
<Video
ref={videoRef}
...
/>
그런 다음 videoRef.current.pauseAsync()
내 코드의 다른 곳에서 일시 중지하도록 호출하십시오 .
그러나 이제 FlatList에 있으므로 각 비디오에 대한 참조를 연결하는 방법을 이해하는 데 어려움을 겪고 pauseAsync()
재생중인 이전 비디오에 대한 참조를 다시 호출 할 수 있습니다 .
모든 방향 /지도를 주시면 감사하겠습니다.
참조 배열을 생성하는 방법.
이 코드 링크를 사용합니다.
const videoRefs = [];
const videos = ['url.com/xyz.mp4', 'url.com/abc.mp4'];
videos.forEach((video, index) => {
videoRefs.push(useRef(null));
});
...
renderItem = ({item, index}) => {
<Video
ref={videoRefs[index]}
...
/>
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다