Video
Video 컴포넌트는 다른 앱에서 음악을 재생 중일 때, 앱에서 그 음악을 중지시키지 않도록 오디오 포커스를 제어하는 로직이 구현된 컴포넌트에요. 앱의 상태에 따라 자동으로 재생하거나 일시정지해요. 예를 들어, 앱이 백그라운드로 전환되면 비디오가 자동으로 일시정지돼요.
WARNING
Video 컴포넌트는 react-native-video
버전(6.0.0-alpha.6) 을 사용하고 있어요. 따라서 일부 타입이나 기능이 최신 버전과 호환되지 않을 수 있어요.
시그니처
Video: import('react').ForwardRefExoticComponent<
Omit<import('react-native-video').VideoProperties, 'onAudioFocusChanged'> & {
onAudioFocusChanged?: (event: { hasAudioFocus: boolean }) => void;
} & import('react').RefAttributes<VideoRef>
>;
파라미터
- props필수 · VideoProperties
`react-native-video`에서 제공하는 속성들이에요.
- props.mutedboolean · false
비디오의 음소거 상태를 제어해요.
true
면 비디오의 오디오가 음소거되고,false
면 오디오가 재생돼요. 기본값은false
에요. - props.pausedboolean · false
비디오 재생을 제어하는 속성이에요.
true
이면 비디오가 일시 정지되고,false
이면 비디오가 재생돼요. 기본값은false
이고, 자동 재생돼요. - props.onAudioFocusChangedcallback
오디오 포커스가 변경될 때 호출되는 콜백 함수에요.
muted
가false
인 경우에 필수로 구현해야해요.
- props.mutedboolean · false
- props.source.uristring
재생할 비디오의 소스에요. 파일 경로나 URL을 설정할 수 있어요.
- event필수 · Object
- 오디오 포커스 정보를 담고 있는 이벤트 객체에요.
- event.hasAudioFocus필수 · boolean
- 비디오 컴포넌트가 오디오 포커스를 가지고 있는지 여부를 나타내요.
- event.hasAudioFocus필수 · boolean
- ref필수 · Ref<VideoRef>
비디오 인스턴스에 접근하기 위한 ref 객체에요. 이 ref를 통해 비디오 인스턴스의 여러 메서드에 접근할 수 있어요.
프로퍼티
- isAvailableboolean
Video
컴포넌트를 사용할 수 있는지 확인하는 값이에요. 이 값을 확인해서 사용자가 비디오를 렌더링할 수 있는지 혹은 환경적 제약(예: 네트워크 연결 문제, 지원되지 않는 디바이스 등)으로 인해 비디오 기능을 사용할 수 없는지를 먼저 확인할 수 있어요. 이 값이false
라면, 비디오를 렌더링하지 않거나 대체 콘텐츠를 제공하는 등의 처리를 해야 해요.
반환 값
- JSX.Element
비디오를 렌더링하는 JSX 엘리먼트를 반환해요.
Animated
를 사용해 부드러운 애니메이션 효과를 포함한 비디오 재생을 제공해요.
예제
동영상 자동 재생 예제
import { useRef } from 'react';
import { View } from 'react-native';
import { Video } from '@granite-js/react-native';
export function VideoExample() {
const videoRef = useRef(null);
return (
<View>
<Video
ref={videoRef}
source={{ uri: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4' }}
muted={true}
paused={false}
resizeMode="cover"
style={{ width: 300, height: 200, borderWidth: 1 }}
/>
</View>
);
}
참고
- react-native-video https://github.com/react-native-video/react-native-video 비디오 컴포넌트 프로퍼티에 대한 자세한 내용은 공식 문서를 참고하세요.
- react-native-video-6.0.0 https://github.com/TheWidlarzGroup/react-native-video/releases/tag/v6.0.0 샌드박스 앱에 설치된 버전의 소스코드