VPEPlayer Android SDK 소개

Android SDK 데모 앱
github.com/SGRsoft-Dev/vpe2-android-native-sdk-demoapp
VPEPlayer Android SDK는 네이버클라우드 VPE(Video Player Enhancement)의 Android 네이티브 플레이어입니다. Jetpack Compose + Media3(ExoPlayer) 기반이며, 웹 @sgrsoft/vpe-react-sdk 및 iOS SDK 와 동일한 옵션 스키마를 따라 한 번 정의한 재생 옵션을 웹·iOS·Android 어디서나 그대로 사용할 수 있습니다.
Android 재생 지원 — Android 는 HLS(.m3u8) · MP4 · DASH(.mpd) 를 모두 재생합니다. iOS 와 달리 DASH 재생이 가능하며, DRM 은 Widevine(
com.widevine.alpha)을 사용합니다.절대 규칙
- 1.패키지는
com.navercloud.vpe.player. 공개 진입점은 두 가지 — ① ComposableVpePlayer(간편), ② 컨트롤러VpePlayerController+VpePlayerView(외부 제어). - 2.
accessKey(라이선스 키) 필수 — 미결제/무효 키는 재생이 차단됩니다(E0001). - 3.옵션은
Map<String, Any?>또는 옵션 JSON 문자열(웹 스키마, 느슨한 문법 허용)로 전달 — 두 방식 결과는 동일합니다. - 4.공개 API 는 Media3
@UnstableApi를 사용하므로 호출부에@OptIn(UnstableApi::class)가 필요합니다. - 5.DRM 은
com.widevine.alpha(FairPlay 아님). 자막 스타일은 시스템 접근성 자막 설정(설정 ▸ 접근성 ▸ 자막)을 따르며captionStyle옵션은 무시됩니다.
요구사항
| 항목 | 버전 / 값 |
|---|---|
| minSdk | 24 이상 |
| Kotlin | 2.0 이상 |
| JDK | 17 |
| 프레임워크 | Jetpack Compose · Media3(ExoPlayer) |
| 배포 형식 | AAR (Maven, 인증 불필요) |
지원 포맷
| 포맷 | 지원 여부 |
|---|---|
| HLS (.m3u8) | 지원 |
| MP4 | 지원 |
| DASH (.mpd) | 지원 |
| Widevine DRM | 지원 (실기기 L1 권장) |
최소 동작 예제
Gradle 로 의존성을 추가한 뒤 Composable 에서 바로 사용할 수 있습니다.
PlayerScreen.kt
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.media3.common.util.UnstableApi
import com.navercloud.vpe.player.VpePlayer
@OptIn(UnstableApi::class)
@Composable
fun Demo() {
VpePlayer(
accessKey = "YOUR_ACCESS_KEY",
options = mapOf(
"autostart" to true, "muted" to true, "aspectRatio" to "16:9",
"playlist" to listOf(mapOf(
"file" to "https://.../master.m3u8",
"description" to mapOf("title" to "VPE Demo")
))
),
modifier = Modifier.fillMaxWidth()
)
}