@sgrsoft/vpe-core-sdk 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +0 -134
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,136 +1,2 @@
1
1
  # VPE Core SDK
2
2
 
3
- VPE(Video Player Engine) Core SDK는 비디오 플레이어의 핵심 기능을 관리하고 서버와 통신하기 위한 타입스크립트 라이브러리입니다. 이 SDK는 라이선스 키 검증, 서버 설정 로드, 플레이어 정보 수집 및 국제화(i18n) 기능을 제공합니다.
4
-
5
- ## 설치
6
-
7
- ```bash
8
- npm install @sgrsoft/vpe-core-sdk
9
- ```
10
-
11
- ## 시작하기
12
-
13
- SDK를 사용하려면 먼저 `VpeCore` 클래스를 가져와서 인스턴스를 생성해야 합니다.
14
-
15
- ```typescript
16
- import VpeCore from '@sgrsoft/vpe-core-sdk';
17
-
18
- const vpe = new VpeCore({
19
- accessKey: 'YOUR_ACCESS_KEY',
20
- appId: 'YOUR_APP_ID', // 예: location.origin
21
- platform: 'pub', // 'pub' 또는 'gov'
22
- stage: 'prod', // 'prod' 또는 'beta'
23
- });
24
- ```
25
-
26
- ### `VpeCore` 옵션
27
-
28
- `VpeCore` 생성자는 다음 옵션을 가진 객체를 인자로 받습니다.
29
-
30
- | 속성 | 타입 | 필수 | 설명 |
31
- |-------------|-----------------------|------|--------------------------------------------------------------------------------------------------|
32
- | `accessKey` | `string` | 예 | VPE 서비스에서 발급받은 액세스 키입니다. |
33
- | `appId` | `string` | 예 | 애플리케이션을 식별하는 ID입니다. 웹 환경에서는 보통 `location.origin`을 사용합니다. |
34
- | `platform` | `'pub'` \| `'gov'` | 예 | 서비스 플랫폼을 지정합니다. (public 또는 government) |
35
- | `stage` | `'prod'` \| `'beta'` | 예 | 서비스 단계를 지정합니다. (production 또는 beta) |
36
- | `isDev` | `boolean` | 아니오 | 개발 모드 여부를 설정합니다. `true`로 설정 시 미리보기 설정을 로드합니다. (기본값: `false`) |
37
- | `language` | `'en'`\|`'ko'`\|`'ja'`\|`'zh'` | 아니오 | UI 메시지에 사용할 언어를 설정합니다. 설정하지 않으면 브라우저의 기본 언어를 따릅니다. |
38
-
39
- ## 주요 기능
40
-
41
- ### 1. 초기화
42
-
43
- `initialize()` 메소드는 서버로부터 설정을 가져오고 플레이어를 사용할 준비를 합니다. 이 메소드는 비동기적으로 실행되며, 초기화가 완료되면 플레이어 옵션과 정보를 반환합니다.
44
-
45
- ```typescript
46
- async function setupPlayer() {
47
- try {
48
- const result = await vpe.initialize();
49
-
50
- if (result.error) {
51
- console.error('초기화 실패:', result.error.errorMessage);
52
- return;
53
- }
54
-
55
- console.log('초기화 성공!');
56
- console.log('서버 옵션:', result.options);
57
- console.log('플레이어 정보:', result.playerInfo);
58
-
59
- } catch (error) {
60
- console.error('알 수 없는 오류 발생:', error);
61
- }
62
- }
63
-
64
- setupPlayer();
65
- ```
66
-
67
- ### 2. 옵션 검증 및 병합
68
-
69
- `getValidatedOptions()` 메소드를 사용하면 서버에서 받은 기본 옵션과 사용자가 직접 설정한 로컬 옵션을 안전하게 병합할 수 있습니다.
70
-
71
- ```typescript
72
- const userOptions = {
73
- autostart: false,
74
- controlBtn: {
75
- play: true,
76
- volume: false,
77
- }
78
- };
79
-
80
- // 서버 기본 옵션과 사용자 옵션을 병합하여 최종 옵션 생성
81
- const finalOptions = vpe.getValidatedOptions(userOptions);
82
-
83
- console.log(finalOptions);
84
- ```
85
-
86
- ### 3. 국제화 (i18n)
87
-
88
- `$t()` 메소드를 사용하면 설정된 언어에 맞는 UI 메시지를 가져올 수 있습니다.
89
-
90
- ```typescript
91
- // VpeCore 생성 시 language: 'ko'로 설정했다고 가정
92
- const playButtonText = vpe.$t('control.play'); // "재생"
93
- const pauseButtonText = vpe.$t('control.pause'); // "일시정지"
94
-
95
- // 존재하지 않는 키를 요청하면 키 이름 그대로 반환
96
- const unknownText = vpe.$t('a.b.c'); // "a.b.c"
97
- ```
98
-
99
- ### 4. 상태 확인 메소드
100
-
101
- `VpeCore` 인스턴스의 현재 상태를 확인하는 유용한 메소드들입니다.
102
-
103
- - **`isInitialized(): boolean`**
104
- - 플레이어 초기화가 성공적으로 완료되었는지 확인합니다.
105
- - `true`이면 초기화가 완료된 것입니다.
106
-
107
- - **`isPaidTier(): boolean`**
108
- - 현재 라이선스가 유료(pay) 등급인지 확인합니다.
109
- - `true`이면 유료 등급입니다.
110
-
111
- ```typescript
112
- if (vpe.isInitialized()) {
113
- console.log('플레이어가 준비되었습니다.');
114
-
115
- if (vpe.isPaidTier()) {
116
- console.log('유료 기능을 사용할 수 있습니다.');
117
- }
118
- }
119
- ```
120
-
121
- ### 5. 플레이리스트 가져오기
122
-
123
- `getPlaylist()` 메소드는 현재 설정된 플레이리스트를 배열 형태로 반환합니다.
124
-
125
- ```typescript
126
- const playlist = vpe.getPlaylist();
127
-
128
- if (playlist.length > 0) {
129
- console.log('현재 플레이리스트:');
130
- playlist.forEach((item, index) => {
131
- console.log(`${index + 1}. ${item.file}`);
132
- });
133
- } else {
134
- console.log('플레이리스트가 비어있습니다.');
135
- }
136
- ```
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sgrsoft/vpe-core-sdk",
3
3
  "private": false,
4
- "version": "0.10.0",
4
+ "version": "0.10.1",
5
5
  "type": "module",
6
6
  "main": "dist/vpe-core-sdk.cjs.js",
7
7
  "module": "dist/vpe-core-sdk.es.js",