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. 공개 진입점은 두 가지 — ① Composable VpePlayer (간편), ② 컨트롤러 VpePlayerController + VpePlayerView (외부 제어).
  • 2.accessKey(라이선스 키) 필수 — 미결제/무효 키는 재생이 차단됩니다(E0001).
  • 3.옵션은 Map<String, Any?> 또는 옵션 JSON 문자열(웹 스키마, 느슨한 문법 허용)로 전달 — 두 방식 결과는 동일합니다.
  • 4.공개 API 는 Media3 @UnstableApi 를 사용하므로 호출부에 @OptIn(UnstableApi::class) 가 필요합니다.
  • 5.DRM 은 com.widevine.alpha (FairPlay 아님). 자막 스타일은 시스템 접근성 자막 설정(설정 ▸ 접근성 ▸ 자막)을 따르며 captionStyle 옵션은 무시됩니다.

요구사항

항목버전 / 값
minSdk24 이상
Kotlin2.0 이상
JDK17
프레임워크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()
    )
}
Android SDKBeta