기본 사용법
가장 간단한 사용법은 SwiftUI 컴포넌트 VpePlayer 입니다. 라이선스 체크, 옵션 머지, 컨트롤바, 풀스크린, 자막, DRM, Now Playing 을 SDK 가 내부에서 처리하므로 컨트롤러를 직접 만들 필요가 없습니다.
딕셔너리 옵션
옵션을 Swift 딕셔너리 [String: Any] 로 전달합니다.
PlayerScreen.swift
import SwiftUI
import VPEPlayer
struct PlayerScreen: View {
var body: some View {
VpePlayer(
accessKey: "YOUR_ACCESS_KEY",
platform: "pub", // 기본 "pub"
stage: "real", // 기본 "prod"
options: [
"autostart": true,
"muted": true,
"aspectRatio": "16:9",
"objectFit": "contain",
"playlist": [
[
"file": "https://.../master.m3u8",
"description": ["title": "샘플 영상", "profile_name": "NCP"]
]
]
]
)
}
}JSON 문자열 옵션
웹 <VpePlayer> 와 동일한 스키마의 JSON 문자열을 그대로 전달할 수 있습니다. 서버에서 내려준 옵션 JSON 을 변환 없이 사용할 때 유용합니다.
let json = """
{
autostart: true, muted: true, aspectRatio: "16/9",
playlist: [{ file: "https://.../master.m3u8", description: { title: "샘플" } }]
}
"""
VpePlayer(accessKey: "YOUR_ACCESS_KEY", optionsJSON: json)JSON 은 느슨한 파싱을 지원합니다 — 키 따옴표 생략({ file: ... }), 후행 콤마, // 주석, 작은따옴표 허용.
VpePlayer init 시그니처
// 딕셔너리
VpePlayer(accessKey: String, platform: String = "pub", stage: String = "prod",
isDev: Bool = false, autoFullscreen: Bool = false, options: [String: Any])
// JSON 문자열
VpePlayer(accessKey: String, platform: String = "pub", stage: String = "prod",
isDev: Bool = false, autoFullscreen: Bool = false, optionsJSON: String)| 인자 | 기본값 | 설명 |
|---|---|---|
| accessKey | – | 라이선스 키 (필수) |
| platform | "pub" | 민간(pub) / 공공(gov) |
| stage | "prod" | 배포 스테이지 |
| autoFullscreen | false | 재생 준비 시 1회 자동 풀스크린 진입 |
옵션 변경 시 재구성
옵션이나 키가 바뀌어 뷰 재생성이 필요하면 .id(reloadToken) 으로 강제 재생성합니다.
VpePlayer(accessKey: key, optionsJSON: json).id(reloadToken)