Skip to content

Commit 28addcb

Browse files
committed
docs: add videoLevelList
1 parent 5f41021 commit 28addcb

File tree

2 files changed

+171
-2
lines changed

2 files changed

+171
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ ezopen://open.ys7.com/${设备序列号}/{通道号}.hd.live<br/>
256256
</table>
257257

258258
</td><td>N</td></tr>
259-
<tr><td>themeData</td><td><a href="./themeData.md" target="_blank">ThemeData</a></td><td>
259+
<tr><td><a href="./themeData.md" target="_blank">themeData</a></td><td><a href="./themeData.md" target="_blank">ThemeData</a></td><td>
260260
themeData将主题数据本地化,设置本地数据,需要删除template参数 <br />
261261
你可以通过themeData修改按钮位置,颜色,头部底部颜色等配置。
262262

@@ -274,7 +274,7 @@ themeData将主题数据本地化,设置本地数据,需要删除template参
274274
<tr><td>loggerOptions</td><td> {name: string, level: "INFO" | "LOG" | "WARN" | "ERROR" , showTime: boolean}</td><td>本地日志设置, 默认值 {name: "ezuikit", level: "INFO", showTime: true}, 支持动态设置请参考 <a href="#日志设置">setLoggerOptions(options)</a> (v8.1.9版本及以上支持)</td><td>N</td></tr>
275275
<tr><td>streamInfoCBType</td><td> 0 | 1 </td><td> 流信息回调类型,监听 streamInfoCB 事件, 0 : 每次都回调(会影响性能), 1 : 只回调一次, 默认值 1 (v8.1.9版本及以上支持)</td><td>N</td></tr>
276276

277-
<tr><td>videoLevelList</td><td> <span>Array<{ </br>/** 清晰度 */</br>level: number, </br>/** 名称 */ </br>name: string, </br> /**1: 主码流,2: 子码流*/</br>streamTypeIn: 1 | 2 }> <span>| null </td><td> 自定义清晰度列表,默认null, 如果有值 sdk 内部不在进行获取, 为 null 使用接口获取的清晰度列表, videoLevelList.length === 0 不展示清晰度控件 sdk 内部不在进行获取, videoLevelList.length > 0 展示控件 sdk 内部不在进行获取 (v8.1.10版本及以上支持)</td><td>N</td></tr>
277+
<tr><td><a href="./videoLevelList.md" target="_blank">videoLevelList</a></td><td> <span>Array<{ </br>/** 清晰度 */</br>level: number, </br>/** 名称 */ </br>name: string, </br> /**1: 主码流,2: 子码流*/</br>streamTypeIn: 1 | 2 }> <span>| null </td><td> 自定义清晰度列表,默认null, 如果有值 sdk 内部不在进行获取, 为 null 使用接口获取的清晰度列表, videoLevelList.length === 0 不展示清晰度控件 sdk 内部不在进行获取, videoLevelList.length > 0 展示控件 sdk 内部不在进行获取 (v8.1.10版本及以上支持)</td><td>N</td></tr>
278278
</table>
279279

280280
### 方法调用

videoLevelList.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
## 清晰度列表 videoLevelList
2+
3+
自定义清晰度列表,默认null, 如果有值 sdk 内部不在进行获取, 为 null 使用接口获取的清晰度列表, videoLevelList.length === 0 不展示清晰度控件 sdk 内部不在进行获取, videoLevelList.length > 0 展示控件 sdk 内部不在进行获取 (v8.1.10版本及以上支持)
4+
5+
清晰度支持七种: 0: 流畅; 1: 标清; 2: 高清; 3: 超清; 4: 极清; 5: 3K; 6: 4K
6+
7+
```ts
8+
interface VideoLevel{
9+
/** 清晰度 0 | 1 | 2 | 3| 4 | 5 | 6 */
10+
level: number,
11+
/** 名称 */
12+
name: string,
13+
/** 1: 主码流, 2: 子码流 (仅支持这两种)*/
14+
streamTypeIn: 1 | 2
15+
/** 如果 type === 'compatible' 代表兼容模式,兼容模式下 streamTypeIn 默认为 1, 因为 */
16+
    type?: 'compatible' | undefined,
17+
}
18+
```
19+
20+
⚠️ 注意:如果设备不支持子码流 (streamTypeIn = 2), 用其取流则不会成功(内部不会强制进行切换),以往的老版本可能会出现这个问题。
21+
22+
⚠️ 注意:如果设备不支持子码流 (streamTypeIn = 2), 用其取流则不会成功(内部不会强制进行切换),以往的老版本可能会出现这个问题。
23+
24+
⚠️ 注意:如果设备不支持子码流 (streamTypeIn = 2), 用其取流则不会成功(内部不会强制进行切换),以往的老版本可能会出现这个问题。
25+
26+
### 查询列表
27+
28+
请求 http 接口查询:[/api/service/device/capacity/video/quality]
29+
<!-- https://open.ys7.com/api/service/device/capacity/video/quality?accessToken=ra.dngskvuq8fyiv7vy8v34vq391ime66zn-1lc2iw4l7p-05oxx55-unjdfvpas&deviceSerial=FU4877853&channelNo=1 -->
30+
31+
#### 清晰度接口相应结果示例
32+
33+
```json
34+
{
35+
"meta": {
36+
"code": 200,
37+
"message": "操作成功",
38+
"moreInfo": null
39+
},
40+
"data": [
41+
{
42+
"id": 7293450,
43+
"channelNo": 1,
44+
/** 清晰度 2 高清, 对应level */
45+
"videoLevel": 2,
46+
"cameraType": "CS-C6Wi-8D8W2DF",
47+
/** 1: 主码流, 2: 子码流 (仅支持这两种)*/
48+
"streamTypeIn": 2,
49+
"streamType": 1,
50+
"resolution": 19,
51+
"picQuality": 2,
52+
"bitRateType": 0,
53+
"videoBitRate": 15,
54+
"maxBitRate": 0,
55+
"videoFrameRate": 14,
56+
"intervalBPFrame": 2,
57+
"intervalFrameI": 60,
58+
"encodeComplex": 1
59+
},
60+
{
61+
"id": 7293452,
62+
"channelNo": 1,
63+
/** 清晰度 3 超清 对应level */
64+
"videoLevel": 3,
65+
"cameraType": "CS-C6Wi-8D8W2DF",
66+
/** 1: 主码流, 2: 子码流 (仅支持这两种)*/
67+
"streamTypeIn": 1,
68+
"streamType": 1,
69+
"resolution": 27,
70+
"picQuality": 2,
71+
"bitRateType": 0,
72+
"videoBitRate": 17,
73+
"maxBitRate": 0,
74+
"videoFrameRate": 14,
75+
"intervalBPFrame": 2,
76+
"intervalFrameI": 60,
77+
"encodeComplex": 1
78+
},
79+
{
80+
"id": 7293454,
81+
"channelNo": 1,
82+
/** 清晰度 4 极清 对应level */
83+
"videoLevel": 4,
84+
"cameraType": "CS-C6Wi-8D8W2DF",
85+
/** 1: 主码流, 2: 子码流 (仅支持这两种)*/
86+
"streamTypeIn": 1,
87+
"streamType": 1,
88+
"resolution": 70,
89+
"picQuality": 2,
90+
"bitRateType": 0,
91+
"videoBitRate": 21,
92+
"maxBitRate": 0,
93+
"videoFrameRate": 14,
94+
"intervalBPFrame": 2,
95+
"intervalFrameI": 60,
96+
"encodeComplex": 1
97+
},
98+
{
99+
"id": 7344044,
100+
"channelNo": 1,
101+
/** 清晰度 6 4K 对应level */
102+
"videoLevel": 6,
103+
"cameraType": "CS-C6Wi-8D8W2DF",
104+
/** 1: 主码流, 2: 子码流 (仅支持这两种)*/
105+
"streamTypeIn": 1,
106+
"streamType": 1,
107+
"resolution": 64,
108+
"picQuality": 2,
109+
"bitRateType": 0,
110+
"videoBitRate": 22,
111+
"maxBitRate": 4096,
112+
"videoFrameRate": 14,
113+
"intervalBPFrame": 2,
114+
"intervalFrameI": 60,
115+
"encodeComplex": 1
116+
}
117+
]
118+
}
119+
```
120+
121+
⚠️ 注意:如果接口没有返回,sdk 会默认认为设备不支持子码流,内部会给一个默认列表(但是都是主码流, 进行切换后是没有变换的)。如下
122+
123+
```js
124+
/**
125+
 * streamTypeIn: 1 | 2  //  1-主码流,2-子码流
126+
 * 能力集没有报备的都默认使用主码流,防止没有子码流
127+
 */
128+
export const VIDEO_LEVEL = [
129+
  {
130+
    level: 1, // 标清
131+
    streamTypeIn: 1, //  1-主码流,2-子码流
132+
    type: 'compatible',
133+
  },
134+
  {
135+
    level: 2, // 高清
136+
    streamTypeIn: 1, //  1-主码流,2-子码流
137+
    type: 'compatible',
138+
  },
139+
];
140+
```
141+
142+
⚠️ 注意: 清晰度列表需要设备端开发上报能力集,可以联系供应商或硬件开发进行上报。
143+
144+
145+
### 示例
146+
147+
如果开发者想自定义清晰度列表或设备没有上报能力集,但是设备型号本身支持可以进行自定义, 如下
148+
149+
```js
150+
// >= v8.1.2 ESM
151+
import { EZUIKitPlayer } from "ezuikit-js";
152+
153+
const player = new EZUIKitPlayer({
154+
// ...
155+
videoLevelList: [
156+
{ level: 1, name: "标清", streamTypeIn: 2 }, // 需要保证支持子码流
157+
{ level: 2, name: "高清", streamTypeIn: 1 },
158+
],
159+
})
160+
```
161+
162+
⚠️ 注意:如果清晰度切换时,码流对应的 `level` 不存在,取流则取码流对应的上一次设置的 `level` 值的流。
163+
164+
⚠️ 注意:清晰度切换成功会改变设备对应码流的设置(如分辨率,帧率等), 如果不想进行改变设备设置,请设置 `level` 的值在对应的码流中不存在, 但是这样同一种码流进行清晰度切换就没有变化了,具体可以根据业务进行自行调整。
165+
166+
167+
⚠️ 注意:如果清晰度没有在已有的列表中,请联系客服或在 github 提issue,我们会组织开发同学进行添加新的清晰度。
168+
169+

0 commit comments

Comments
 (0)