커스텀 아이콘

VPE React Native SDK는 ControlBar의 모든 기본 아이콘을 사용자 정의 아이콘(JSX, 원격 이미지 URL, 로컬 require 이미지, 함수형 렌더러)으로 교체할 수 있는 IconOverrides 시스템을 제공합니다.

AndroidiOS
Breaking change: 기존 props.icon은 폐지되었습니다. 이제 options.icon으로 전달합니다.

아이콘 값 타입 (IconValue)

  • ReactNode — JSX 직접 전달
  • string — 원격 이미지 URL → 내부적으로 <Image source={{uri}} /> 렌더
  • numberrequire('./icon.png') 결과 → 로컬 이미지
  • () => ReactNode — 동적 렌더링용 함수형

사용 가능한 키

아래 키들은 ControlBar의 기본 컨트롤 컴포넌트들이 참조하는 아이콘 이름입니다.

설명
bigPlay중앙 큰 재생 버튼
play재생
pause일시정지
replay재생 종료 후 다시보기
prev이전 트랙
next다음 트랙
subtitle자막 ON
subtitleOff자막 OFF
fullscreen전체화면 진입
fullscreenExit전체화면 종료
volumeFull음량 최대
volumeMid음량 중간
volumeMute음소거
setting설정
back뒤로가기
share공유
skipForward10초 앞으로
skipBack10초 뒤로

JSX로 교체

import { VpePlayer } from 'vpe-react-native';
import { PlayIcon, PauseIcon } from 'phosphor-react-native';

export default function MyPlayer() {
    return (
        <VpePlayer
            accessKey={'YOUR_ACCESS_KEY'}
            options={{
                playlist: [{ file: 'https://CDN도메인/master.m3u8' }],
                icon: {
                    play: <PlayIcon size={28} color="#ffffff" weight="fill" />,
                    pause: <PauseIcon size={28} color="#ffffff" weight="fill" />,
                },
            }}
        />
    );
}

이미지로 교체

<VpePlayer
    accessKey={'YOUR_ACCESS_KEY'}
    options={{
        playlist: [{ file: 'https://CDN도메인/master.m3u8' }],
        icon: {
            // 원격 이미지 URL (string)
            play: 'https://example.com/icons/play.png',
            // 로컬 이미지 (require → number)
            pause: require('./assets/pause.png'),
            // 함수형 렌더러
            fullscreen: () => <MyFullscreenIcon />,
        },
    }}
/>
React Native