---
title: "Player UX"
slug: "vpe-rn-player-ux"
updated: 2026-09-17T09:22:36Z
published: 2026-09-17T09:22:36Z
canonical: "guide.ncloud-docs.com/vpe-rn-player-ux"
stale: true
---
> ## Documentation Index
> Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.
# Player UX
Available in Classic and VPC
Learn about options for configuring and customizing the player UX.
## touchGestures (touch gestures)
You can enable the touch gesture feature in mobile UI with the `touchGestures` property.
```
```
## watermarkText (text watermark)
You can set a watermark that can track viewers using the `watermarkText` property with desired text (user ID + site name, etc.).
Note
To use this feature, you must enable the player's watermark settings in the console. Watermark text can only be added via script.
```
```
## watermarkConfig (detailed settings for text watermark)
When using text watermarks, you can configure detailed options depending on whether the random position is enabled. The detailed options for the watermark can be configured in the NAVER Cloud Platform console.
**Enable random position**
```
```
**Disable random position**
```
```
## Full screen mode
You can choose to develop Full screen either as a modal (Modal) or as a custom Full screen. The modal method cannot be customized but provides basic functionality. Custom Full screen allows you to directly control safe areas and behaviors.
**Modal Full screen**
```
```
**Custom Full screen**
```
import { View, StatusBar, ScrollView, Text } from 'react-native';
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
import { VpePlayer } from 'vpe-react-native';
import React, { useRef, useState } from 'react';
import { useNavigation } from '@react-navigation/native';
export default function App() {
const navigation = useNavigation();
const [isFullScreen, setIsFullScreen] = useState(false);
const playerRef = useRef(null);
return (
{
setIsFullScreen(data.isFullScreen);
},
}}
options={{
playlist: [
{ file: 'https://CDNdomain/example_video_01.mp4' },
],
aspectRatio: '16/9',
objectFit: 'contain',
modalFullscreen: false, // Custom Full screen
}}
/>
{!isFullScreen && (
Custom Full screen implementation demo
)}
);
}
```
## Custom icon
Supported platforms: `Android` `iOS`
The VPE React Native SDK provides an IconOverrides system that allows you to replace all default icons in the Control Bar with custom icons (JSX, remote image URLs, local require images, or functional renderers).
Note
The existing `props.icon` has been deprecated, and should be passed as `options.icon`.
### Value type
- ReactNode: Pass JSX directly
- string: Remote image URL → rendered internally with `<Image source={{uri}}/>`
- number: `require('./icon.png')` result → local image
- () => ReactNode: Functional for dynamic rendering
### Available keys
The following keys are the icon names referenced by the default control components in the control bar.
| Key | Description |
| --- | --- |
| bigPlay | Central large play button |
| play | Play |
| pause | Pause |
| replay | Replay after playback ends |
| prev | Previous track |
| next | Next track |
| subtitle | Subtitle on |
| subtitleOff | Subtitle off |
| fullscreen | Enter Full screen |
| fullscreenExit | Exit Full screen |
| volumeFull | Maximum volume |
| volumeMid | Medium volume |
| volumeMute | Mute |
| setting | Settings |
| back | Back |
| share | Share |
| skipForward | Skip forward 10 seconds |
| skipBack | Skip backward 10 seconds |
### Replace it with JSX
```
import { VpePlayer } from 'vpe-react-native';
import { PlayIcon, PauseIcon } from 'phosphor-react-native';
export default function MyPlayer() {
return (
,
pause: ,
},
}}
/>
);
}
```
### Replace it with an image
```
, // Functional renderer
},
}}
/>
```