Source: ZegoExpressDefines.js

  1. /**
  2. * 应用使用场景
  3. * @enum {number}
  4. */
  5. const ZegoScenario =
  6. {
  7. /**
  8. * @description 通用场景,SDK 为大多数使用场景提供的默认模式,开发者如果不是很确定自己产品的使用场景,可选择此场景模式。
  9. */
  10. General: 0,
  11. /**
  12. * @description 实时通讯场景,常用于 1V1 通话、多人通话等对实时性要求较高的通讯场景。
  13. */
  14. Communication: 1,
  15. /**
  16. * @description 直播场景,常用于 1 对多直播 等直播场景。
  17. */
  18. Live: 2,
  19. }
  20. /**
  21. * 语言
  22. * @enum {number}
  23. */
  24. const ZegoLanguage =
  25. {
  26. /**
  27. * @description 英文
  28. */
  29. English: 0,
  30. /**
  31. * @description 中文
  32. */
  33. Chinese: 1,
  34. }
  35. /**
  36. * 引擎状态
  37. * @enum {number}
  38. */
  39. const ZegoEngineState =
  40. {
  41. /**
  42. * @description 引擎已开启
  43. */
  44. Start: 0,
  45. /**
  46. * @description 引擎已停止
  47. */
  48. Stop: 1,
  49. }
  50. /**
  51. * 房间状态
  52. * @enum {number}
  53. */
  54. const ZegoRoomState =
  55. {
  56. /**
  57. * @description 未连接状态,在登陆房间前和退出房间之后进入该状态。如果登陆房间的过程出现稳态异常,例如 AppID 和 AppSign 不正确,或者有相同用户名在其他地方登陆导致本端被 KickOut,都会进入该状态
  58. */
  59. Disconnected: 0,
  60. /**
  61. * @description 正在请求连接状态,登陆房间动作执行成功后会进入此状态。通常通过该状态进行应用界面的展示。如果因为网络质量不佳产生的中断, SDK 会进行内部重试,也会回到正在请求连接状态
  62. */
  63. Connecting: 1,
  64. /**
  65. * @description 连接成功状态,进入该状态表示登陆房间已经成功,用户可以正常收到房间内的用户和流信息增删的回调通知
  66. */
  67. Connected: 2,
  68. }
  69. /**
  70. * 推流通道
  71. * @enum {number}
  72. */
  73. const ZegoPublishChannel =
  74. {
  75. /**
  76. * @description 主推流通道,默认通道
  77. */
  78. Main: 0,
  79. /**
  80. * @description 辅推流通道(第二路推流通道)
  81. */
  82. Aux: 1,
  83. /**
  84. * @description 第三路推流通道
  85. */
  86. Third: 2,
  87. /**
  88. * @description 第四路推流通道
  89. */
  90. Fourth: 3,
  91. }
  92. /**
  93. * 视频渲染填充模式
  94. * @enum {number}
  95. */
  96. const ZegoViewMode =
  97. {
  98. /**
  99. * @description 等比缩放,可能有黑边
  100. */
  101. AspectFit: 0,
  102. /**
  103. * @description 等比缩放填充整个 View,可能有部分被裁减
  104. */
  105. AspectFill: 1,
  106. /**
  107. * @description 填充整个 View,图像可能被拉伸
  108. */
  109. ScaleToFill: 2,
  110. }
  111. /**
  112. * 预览或拉流端的镜像模式。
  113. * @enum {number}
  114. */
  115. const ZegoVideoMirrorMode =
  116. {
  117. /**
  118. * @description 只有本地预览时才是镜像画面,默认采用此模式。
  119. */
  120. OnlyPreviewMirror: 0,
  121. /**
  122. * @description 本地预览和拉流端看到的视频都是镜像画面。
  123. */
  124. BothMirror: 1,
  125. /**
  126. * @description 本地预览和拉流端看到的视频都不是镜像画面。
  127. */
  128. NoMirror: 2,
  129. /**
  130. * @description 只有拉流端看到的视频才是镜像画面。
  131. */
  132. OnlyPublishMirror: 3,
  133. }
  134. /**
  135. * SEI 类型
  136. * @enum {number}
  137. */
  138. const ZegoSEIType =
  139. {
  140. /**
  141. * @description 采用 H.264 的 SEI (nalu type = 6, payload type = 243) 类型打包,此类型是 SEI 标准未规定的类型,跟视频编码器或者视频文件中的 SEI 不存在冲突性,用户不需要根据 SEI 的内容做过滤,SDK 默认采用此种类型。
  142. */
  143. ZegoDefined: 0,
  144. /**
  145. * @description 采用 H.264 的 SEI (nalu type = 6, payload type = 5) 类型打包,H.264 标准对于此类型有规定的格式:startcode + nalu type (6) + payload type (5) + len + payload (uuid + context) + trailing bits;因为视频编码器自身会产生 payload type 为 5 的 SEI,或者使用视频文件推流时,视频文件中也可能存在这样的 SEI,所以使用此类型时,用户需要把 uuid + content 当作 buffer 塞给发送 SEI 的函数;此时为了区别视频编码器自身产生的 SEI, App 在发送此类型 SEI 时,可以填写业务特定的 uuid (uuid 长度为 16 字节),接收方使用 SDK 解析 payload type 为 5 的 SEI 时,会根据设置的过滤字符串过滤出 uuid 相符的 SEI 抛给业务,如果没有设置过滤字符串,SDK 会把所有收到的 SEI 都抛给开发者。
  146. */
  147. UserUnregister: 1,
  148. }
  149. /**
  150. * 推流状态
  151. * @enum {number}
  152. */
  153. const ZegoPublisherState =
  154. {
  155. /**
  156. * @description 未推流状态,在推流前处于该状态。如果推流过程出现稳态的异常,例如 AppID 和 AppSign 不正确,或者如果其他用户已经在推送流,推送相同流 ID 的流会失败,都会进入未推流状态
  157. */
  158. NoPublish: 0,
  159. /**
  160. * @description 正在请求推流状态,推流操作执行成功后会进入正在请求推流状态,通常通过该状态进行 UI 界面的展示。如果因为网络质量不佳产生的中断,SDK 会进行内部重试,也会回到正在请求推流状态
  161. */
  162. PublishRequesting: 1,
  163. /**
  164. * @description 正在推流状态,进入该状态表明推流已经成功,用户可以正常通信
  165. */
  166. Publishing: 2,
  167. }
  168. /**
  169. * 变声器预设值
  170. * @enum {number}
  171. */
  172. const ZegoVoiceChangerPreset =
  173. {
  174. /**
  175. * @description 无变声
  176. */
  177. None: 0,
  178. /**
  179. * @description 男声变童声(萝莉声效)
  180. */
  181. MenToChild: 1,
  182. /**
  183. * @description 男声变女声(幼儿园声效)
  184. */
  185. MenToWomen: 2,
  186. /**
  187. * @description 女声变童声
  188. */
  189. WomenToChild: 3,
  190. /**
  191. * @description 女声变男声
  192. */
  193. WomenToMen: 4,
  194. /**
  195. * @description 歪果仁声效
  196. */
  197. Foreigner: 5,
  198. /**
  199. * @description 汽车人擎天柱声效
  200. */
  201. OptimusPrime: 6,
  202. /**
  203. * @description 机器人声效
  204. */
  205. Android: 7,
  206. /**
  207. * @description 空灵声效
  208. */
  209. Ethereal: 8,
  210. /**
  211. * @description 磁性男声效
  212. */
  213. MaleMagnetic: 9,
  214. /**
  215. * @description 清新女声效
  216. */
  217. FemaleFresh: 10,
  218. /**
  219. * @description C大调电音音效
  220. */
  221. MajorC: 11,
  222. /**
  223. * @description A小调电音音效
  224. */
  225. MinorA: 12,
  226. /**
  227. * @description 和声小调电音音效
  228. */
  229. HarmonicMinor: 13,
  230. }
  231. /**
  232. * 混响预设值
  233. * @enum {number}
  234. */
  235. const ZegoReverbPreset =
  236. {
  237. /**
  238. * @description 无混响
  239. */
  240. None: 0,
  241. /**
  242. * @description 小房间混响效果
  243. */
  244. SoftRoom: 1,
  245. /**
  246. * @description 大房间混响效果
  247. */
  248. LargeRoom: 2,
  249. /**
  250. * @description 音乐厅混响效果
  251. */
  252. ConcertHall: 3,
  253. /**
  254. * @description 山谷混响效果
  255. */
  256. Valley: 4,
  257. /**
  258. * @description 录音棚混响效果
  259. */
  260. RecordingStudio: 5,
  261. /**
  262. * @description 地下室混响效果
  263. */
  264. Basement: 6,
  265. /**
  266. * @description KTV 混响效果
  267. */
  268. KTV: 7,
  269. /**
  270. * @description 流行混响效果
  271. */
  272. Popular: 8,
  273. /**
  274. * @description 摇滚混响效果
  275. */
  276. Rock: 9,
  277. /**
  278. * @description 演唱会混响效果
  279. */
  280. VocalConcert: 10,
  281. /**
  282. * @description 留声机混响效果
  283. */
  284. GramoPhone: 11,
  285. }
  286. /**
  287. * 视频配置分辨率与比特率预设枚举。预设的分辨率分别针对移动端与桌面端做了适配。在移动端上 height 长于 width,而桌面端相反。例如 1080p 在移动端上实际为 1080(w) x 1920(h),而在桌面端上实际为 1920(w) x 1080(h)
  288. * @enum {number}
  289. */
  290. const ZegoVideoConfigPreset =
  291. {
  292. /**
  293. * @description 设置分辨率为 320x180,默认采用 15 fps,码率 300 kbps
  294. */
  295. Preset180P: 0,
  296. /**
  297. * @description 设置分辨率为 480x270,默认采用 15 fps,码率 400 kbps
  298. */
  299. Preset270P: 1,
  300. /**
  301. * @description 设置分辨率为 640x360,默认采用 15 fps,码率 600 kbps
  302. */
  303. Preset360P: 2,
  304. /**
  305. * @description 设置分辨率为 960x540,默认采用 15 fps,码率 1200 kbps
  306. */
  307. Preset540P: 3,
  308. /**
  309. * @description 设置分辨率为 1280x720,默认采用 15 fps,码率 1500 kbps
  310. */
  311. Preset720P: 4,
  312. /**
  313. * @description 设置分辨率为 1920x1080,默认采用 15 fps,码率 3000 kbps
  314. */
  315. Preset1080P: 5,
  316. }
  317. /**
  318. * 流质量等级
  319. * @enum {number}
  320. */
  321. const ZegoStreamQualityLevel =
  322. {
  323. /**
  324. * @description 质量极好
  325. */
  326. Excellent: 0,
  327. /**
  328. * @description 质量好
  329. */
  330. Good: 1,
  331. /**
  332. * @description 质量正常
  333. */
  334. Medium: 2,
  335. /**
  336. * @description 质量差
  337. */
  338. Bad: 3,
  339. /**
  340. * @description 质量异常
  341. */
  342. Die: 4,
  343. /**
  344. * @description 质量未知
  345. */
  346. Unknown: 5,
  347. }
  348. /**
  349. * 音频声道
  350. * @enum {number}
  351. */
  352. const ZegoAudioChannel =
  353. {
  354. /**
  355. * @description 未知
  356. */
  357. Unknown: 0,
  358. /**
  359. * @description 单声道
  360. */
  361. Mono: 1,
  362. /**
  363. * @description 双声道
  364. */
  365. Stereo: 2,
  366. }
  367. /**
  368. * 音频采集双声道模式
  369. * @enum {number}
  370. */
  371. const ZegoAudioCaptureStereoMode =
  372. {
  373. /**
  374. * @description 不开启双声道采集,即单声道采集
  375. */
  376. None: 0,
  377. /**
  378. * @description 始终开启双声道采集
  379. */
  380. Always: 1,
  381. /**
  382. * @description 自适应模式,当仅推流时采集双声道,当推拉流(如通话/连麦场景)时采集单声道
  383. */
  384. Adaptive: 2,
  385. }
  386. /**
  387. * 音频编码器
  388. * @enum {number}
  389. */
  390. const ZegoAudioCodecID =
  391. {
  392. /**
  393. * @description default
  394. */
  395. Default: 0,
  396. /**
  397. * @description Normal
  398. */
  399. Normal: 1,
  400. /**
  401. * @description Normal2
  402. */
  403. Normal2: 2,
  404. /**
  405. * @description Normal3
  406. */
  407. Normal3: 3,
  408. /**
  409. * @description Low
  410. */
  411. Low: 4,
  412. /**
  413. * @description Low2
  414. */
  415. Low2: 5,
  416. /**
  417. * @description Low3
  418. */
  419. Low3: 6,
  420. }
  421. /**
  422. * 视频编码格式
  423. * @enum {number}
  424. */
  425. const ZegoVideoCodecID =
  426. {
  427. /**
  428. * @description 默认编码 (H.264)
  429. */
  430. Default: 0,
  431. /**
  432. * @description 分层编码 (H.264 SVC)
  433. */
  434. SVC: 1,
  435. /**
  436. * @description VP8
  437. */
  438. VP8: 2,
  439. /**
  440. * @description H.265
  441. */
  442. H265: 3,
  443. }
  444. /**
  445. * 拉流播放的视频分层
  446. * @enum {number}
  447. */
  448. const ZegoPlayerVideoLayer =
  449. {
  450. /**
  451. * @description 根据网络状态选择图层
  452. */
  453. Auto: 0,
  454. /**
  455. * @description 指定拉基本层(小分辨率)
  456. */
  457. Base: 1,
  458. /**
  459. * @description 指定拉扩展层(大分辨率)
  460. */
  461. BaseExtend: 2,
  462. }
  463. /**
  464. * 视频流类型
  465. * @enum {number}
  466. */
  467. const ZegoVideoStreamType =
  468. {
  469. /**
  470. * @description 根据网络状态自动选择流类型
  471. */
  472. Default: 0,
  473. /**
  474. * @description 小分辨率类型
  475. */
  476. Small: 1,
  477. /**
  478. * @description 大分辨率类型
  479. */
  480. Big: 2,
  481. }
  482. /**
  483. * 回声消除模式。
  484. * @enum {number}
  485. */
  486. const ZegoAECMode =
  487. {
  488. /**
  489. * @description 激进的回声抵消,可能会影响音质稍微明显,但是回声会消除得很干净。
  490. */
  491. Aggressive: 0,
  492. /**
  493. * @description 适度的回声抵消,就是可能会稍微影响一点点音质,但是残留的回声会更少。
  494. */
  495. Medium: 1,
  496. /**
  497. * @description 舒适的回声抵消,就是回声抵消基本不会影响声音的音质,可能有时会残留一点回声,但不会影响正常听音。
  498. */
  499. Soft: 2,
  500. }
  501. /**
  502. * 噪声抑制模式
  503. * @enum {number}
  504. */
  505. const ZegoANSMode =
  506. {
  507. /**
  508. * @description 轻度的噪声抑制,基本不会损伤音质,但会残留一些噪声。
  509. */
  510. Soft: 0,
  511. /**
  512. * @description 适度的噪声抑制,有可能损伤一些音质,但有不错的降噪效果。
  513. */
  514. Medium: 1,
  515. /**
  516. * @description 激进的噪声抑制,有可能明显损伤音质,但有很好的降噪效果。
  517. */
  518. Aggressive: 2,
  519. }
  520. /**
  521. * 当发生流量控制时可供调节的属性(位掩码枚举)
  522. * @enum {number}
  523. */
  524. const ZegoTrafficControlProperty =
  525. {
  526. /**
  527. * @description 基础属性(自适应(降低)视频码率)
  528. */
  529. Basic: 0,
  530. /**
  531. * @description 自适应(降低)视频帧率
  532. */
  533. AdaptiveFPS: 1,
  534. /**
  535. * @description 自适应(降低)视频分辨率
  536. */
  537. AdaptiveResolution: 1 << 1,
  538. /**
  539. * @description 自适应(降低)音频码率
  540. */
  541. AdaptiveAudioBitrate: 1 << 2,
  542. }
  543. /**
  544. * 流控触发最低码率时的视频发送模式
  545. * @enum {number}
  546. */
  547. const ZegoTrafficControlMinVideoBitrateMode =
  548. {
  549. /**
  550. * @description 低于设置的最低码率时,停止视频发送
  551. */
  552. NoVideo: 0,
  553. /**
  554. * @description 低于设置的最低码率时,视频以极低的频率发送(不超过 2 FPS)
  555. */
  556. UltraLowFPS: 1,
  557. }
  558. /**
  559. * 触发流量控制的因素
  560. * @enum {number}
  561. */
  562. const ZegoTrafficControlFocusOnMode =
  563. {
  564. /**
  565. * @description 只关注本地网络
  566. */
  567. ZegoTrafficControlFounsOnLocalOnly: 0,
  568. /**
  569. * @description 关注本地网络, 同时也兼顾远端网络,目前只在 1v1 场景下有效
  570. */
  571. ZegoTrafficControlFounsOnRemote: 1,
  572. }
  573. /**
  574. * 拉流状态
  575. * @enum {number}
  576. */
  577. const ZegoPlayerState =
  578. {
  579. /**
  580. * @description 未拉流状态,在拉流前处于该状态。如果拉流过程出现稳态的异常,例如 AppID 和 AppSign 不正确,都会进入未拉流状态
  581. */
  582. NoPlay: 0,
  583. /**
  584. * @description 正在请求拉流状态,拉流操作执行成功后会进入正在请求拉流状态,通常通过该状态进行应用界面的展示。如果因为网络质量不佳产生的中断,SDK 会进行内部重试,也会回到正在请求拉流状态
  585. */
  586. PlayRequesting: 1,
  587. /**
  588. * @description 正在拉流状态,进入该状态表明拉流已经成功,用户可以正常通信
  589. */
  590. Playing: 2,
  591. }
  592. /**
  593. * 拉流媒体事件
  594. * @enum {number}
  595. */
  596. const ZegoPlayerMediaEvent =
  597. {
  598. /**
  599. * @description 拉流端出现音频卡顿事件
  600. */
  601. AudioBreakOccur: 0,
  602. /**
  603. * @description 拉流端音频卡顿事件结束
  604. */
  605. AudioBreakResume: 1,
  606. /**
  607. * @description 拉流端出现视频卡顿事件
  608. */
  609. VideoBreakOccur: 2,
  610. /**
  611. * @description 拉流端视频卡顿事件结束
  612. */
  613. VideoBreakResume: 3,
  614. }
  615. /**
  616. * 拉流资源策略模式
  617. * @enum {number}
  618. */
  619. const ZegoStreamResourceMode =
  620. {
  621. /**
  622. * @description 默认模式。SDK 会根据拉流设置的 cdnConfig 参数以及即构的后台配置自动选择拉流资源
  623. */
  624. Default: 0,
  625. /**
  626. * @description 仅从 CDN 拉流
  627. */
  628. OnlyCDN: 1,
  629. /**
  630. * @description 仅从 L3 拉流
  631. */
  632. OnlyL3: 2,
  633. /**
  634. * @description 仅从 RTC 拉流
  635. */
  636. OnlyRTC: 3,
  637. }
  638. /**
  639. * 更新类型
  640. * @enum {number}
  641. */
  642. const ZegoUpdateType =
  643. {
  644. /**
  645. * @description 添加
  646. */
  647. Add: 0,
  648. /**
  649. * @description 删除
  650. */
  651. Delete: 1,
  652. }
  653. /**
  654. * 转推 CDN 状态
  655. * @enum {number}
  656. */
  657. const ZegoStreamRelayCDNState =
  658. {
  659. /**
  660. * @description 未转推状态,在转推前处于该状态。如果转推过程出现稳态的异常,例如 转推地址 不正确,都会进入未转推状态
  661. */
  662. NoRelay: 0,
  663. /**
  664. * @description 正在请求转推状态,转推操作执行成功后会进入正在请求转推状态,通常通过该状态进行应用界面的展示。如果因为网络质量不佳产生的中断,SDK 会进行内部重试,也会回到正在转推状态
  665. */
  666. RelayRequesting: 1,
  667. /**
  668. * @description 正在转推状态,进入该状态表明转推已成功
  669. */
  670. Relaying: 2,
  671. }
  672. /**
  673. * 转发 CDN 状态改变原因
  674. * @enum {number}
  675. */
  676. const ZegoStreamRelayCDNUpdateReason =
  677. {
  678. /**
  679. * @description 无
  680. */
  681. None: 0,
  682. /**
  683. * @description 服务器错误
  684. */
  685. ServerError: 1,
  686. /**
  687. * @description 握手失败
  688. */
  689. HandshakeFailed: 2,
  690. /**
  691. * @description 接入点错误
  692. */
  693. AccessPointError: 3,
  694. /**
  695. * @description 创建流失败
  696. */
  697. CreateStreamFailed: 4,
  698. /**
  699. * @description 流 ID 不合法
  700. */
  701. BadName: 5,
  702. /**
  703. * @description CDN 服务器主动断开
  704. */
  705. CDNServerDisconnected: 6,
  706. /**
  707. * @description 主动断开
  708. */
  709. Disconnected: 7,
  710. /**
  711. * @description 混流的全部输入流会话关闭
  712. */
  713. MixStreamAllInputStreamClosed: 8,
  714. /**
  715. * @description 混流的全部输入流没有数据
  716. */
  717. MixStreamAllInputStreamNoData: 9,
  718. /**
  719. * @description 混流服务器内部错误
  720. */
  721. MixStreamServerInternalError: 10,
  722. }
  723. /**
  724. * 远端设备状态
  725. * @enum {number}
  726. */
  727. const ZegoRemoteDeviceState =
  728. {
  729. /**
  730. * @description 设备开启
  731. */
  732. Open: 0,
  733. /**
  734. * @description 设备关闭:一般性设备错误
  735. */
  736. GenericError: 1,
  737. /**
  738. * @description 设备关闭:无效的设备 ID
  739. */
  740. InvalidID: 2,
  741. /**
  742. * @description 设备关闭:无权限
  743. */
  744. NoAuthorization: 3,
  745. /**
  746. * @description 设备关闭:采集帧率为 0
  747. */
  748. ZeroFPS: 4,
  749. /**
  750. * @description 设备关闭:设备被占用
  751. */
  752. InUseByOther: 5,
  753. /**
  754. * @description 设备关闭:设备未插入或被拔出
  755. */
  756. Unplugged: 6,
  757. /**
  758. * @description 设备关闭:由于系统原因需要重启后才能进行下一次修改,否则重新打开也不生效
  759. */
  760. RebootRequired: 7,
  761. /**
  762. * @description 设备关闭:系统媒体服务停止,如 iOS 平台下,当系统检测到当前压力巨大(如播放大量动画),则有可能会将媒体相关服务全部停用
  763. */
  764. SystemMediaServicesLost: 8,
  765. /**
  766. * @description 设备关闭:禁用采集
  767. */
  768. Disable: 9,
  769. /**
  770. * @description 设备关闭:远端设备被静音
  771. */
  772. Mute: 10,
  773. /**
  774. * @description 设备关闭:设备被中断,如电话事件打断等
  775. */
  776. Interruption: 11,
  777. /**
  778. * @description 设备关闭:用户 App 退到后台
  779. */
  780. InBackground: 12,
  781. /**
  782. * @description 设备关闭:当前前台同时存在多个 App,如 iPad 应用分屏下,系统会禁止所有应用使用摄像头
  783. */
  784. MultiForegroundApp: 13,
  785. /**
  786. * @description 设备关闭:系统处于高负载压力下,可能导致设备异常
  787. */
  788. BySystemPressure: 14,
  789. /**
  790. * @description 设备状态未知:远端的 SDK 版本过低,不支持发布该设备状态信息
  791. */
  792. NotSupport: 15,
  793. }
  794. /**
  795. * 音频设备类型
  796. * @enum {number}
  797. */
  798. const ZegoAudioDeviceType =
  799. {
  800. /**
  801. * @description 音频输入设备
  802. */
  803. Input: 0,
  804. /**
  805. * @description 音频输出设备
  806. */
  807. Output: 1,
  808. }
  809. /**
  810. * 音频路由
  811. * @enum {number}
  812. */
  813. const ZegoAudioRoute =
  814. {
  815. /**
  816. * @description 扬声器
  817. */
  818. Speaker: 0,
  819. /**
  820. * @description 耳机
  821. */
  822. Headphone: 1,
  823. /**
  824. * @description 蓝牙设备
  825. */
  826. Bluetooth: 2,
  827. /**
  828. * @description 听筒
  829. */
  830. Receiver: 3,
  831. /**
  832. * @description USB 音频外接设备
  833. */
  834. ExternalUSB: 4,
  835. /**
  836. * @description Apple 隔空播放
  837. */
  838. AirPlay: 5,
  839. }
  840. /**
  841. * 混流内容类型
  842. * @enum {number}
  843. */
  844. const ZegoMixerInputContentType =
  845. {
  846. /**
  847. * @description 音频混流内容类型
  848. */
  849. Audio: 0,
  850. /**
  851. * @description 视频混流内容类型
  852. */
  853. Video: 1,
  854. /**
  855. * @description 仅视频混流内容类型
  856. */
  857. VideoOnly: 2,
  858. }
  859. /**
  860. * 视频采集缩放时机
  861. * @enum {number}
  862. */
  863. const ZegoCapturePipelineScaleMode =
  864. {
  865. /**
  866. * @description 采集后立即进行缩放,默认
  867. */
  868. Pre: 0,
  869. /**
  870. * @description 编码时进行缩放
  871. */
  872. Post: 1,
  873. }
  874. /**
  875. * 视频帧格式
  876. * @enum {number}
  877. */
  878. const ZegoVideoFrameFormat =
  879. {
  880. /**
  881. * @description 未知格式,将取平台默认值
  882. */
  883. Unknown: 0,
  884. /**
  885. * @description I420 (YUV420Planar) 格式
  886. */
  887. I420: 1,
  888. /**
  889. * @description NV12 (YUV420SemiPlanar) 格式
  890. */
  891. NV12: 2,
  892. /**
  893. * @description NV21 (YUV420SemiPlanar) 格式
  894. */
  895. NV21: 3,
  896. /**
  897. * @description BGRA32 格式
  898. */
  899. BGRA32: 4,
  900. /**
  901. * @description RGBA32 格式
  902. */
  903. RGBA32: 5,
  904. /**
  905. * @description ARGB32 格式
  906. */
  907. ARGB32: 6,
  908. /**
  909. * @description ABGR32 格式
  910. */
  911. ABGR32: 7,
  912. /**
  913. * @description I422 (YUV422Planar) 格式
  914. */
  915. I422: 8,
  916. }
  917. /**
  918. * 视频帧数据类型
  919. * @enum {number}
  920. */
  921. const ZegoVideoBufferType =
  922. {
  923. /**
  924. * @description 未知类型
  925. */
  926. Unknown: 0,
  927. /**
  928. * @description 裸数据类型视频帧
  929. */
  930. RawData: 1,
  931. /**
  932. * @description 编码类型视频帧
  933. */
  934. EncodedData: 2,
  935. /**
  936. * @description OpenGL Texture 2D 类型视频帧
  937. */
  938. GLTexture2D: 3,
  939. /**
  940. * @description CVPixelBuffer 类型视频帧
  941. */
  942. CVPixelBuffer: 4,
  943. /**
  944. * @description SurfaceTexture 类型视频帧
  945. */
  946. SurfaceTexture: 5,
  947. /**
  948. * @description OpenGL GL_TEXTURE_EXTERNAL_OES 类型视频帧
  949. */
  950. GLTextureExternalOES: 6,
  951. }
  952. /**
  953. * 视频帧格式系列
  954. * @enum {number}
  955. */
  956. const ZegoVideoFrameFormatSeries =
  957. {
  958. /**
  959. * @description RGB 系列
  960. */
  961. RGB: 0,
  962. /**
  963. * @description YUV 系列
  964. */
  965. YUV: 1,
  966. }
  967. /**
  968. * 视频帧翻转模式
  969. * @enum {number}
  970. */
  971. const ZegoVideoFlipMode =
  972. {
  973. /**
  974. * @description 不翻转
  975. */
  976. None: 0,
  977. /**
  978. * @description X 轴翻转
  979. */
  980. X: 1,
  981. /**
  982. * @description 垂直翻转
  983. */
  984. Y: 2,
  985. /**
  986. * @description XY 轴翻转
  987. */
  988. XY: 3,
  989. }
  990. /**
  991. * 音频配置类型
  992. * @enum {number}
  993. */
  994. const ZegoAudioConfigPreset =
  995. {
  996. /**
  997. * @description 基础音质 (16 kbps, Mono, ZegoAudioCodecIDDefault)
  998. */
  999. BasicQuality: 0,
  1000. /**
  1001. * @description 标准音质 (48 kbps, Mono, ZegoAudioCodecIDDefault)
  1002. */
  1003. StandardQuality: 1,
  1004. /**
  1005. * @description 标准音质 (56 kbps, Stereo, ZegoAudioCodecIDDefault)
  1006. */
  1007. StandardQualityStereo: 2,
  1008. /**
  1009. * @description 高音质 (128 kbps, Mono, ZegoAudioCodecIDDefault)
  1010. */
  1011. HighQuality: 3,
  1012. /**
  1013. * @description 高音质 (192 kbps, Stereo, ZegoAudioCodecIDDefault)
  1014. */
  1015. HighQualityStereo: 4,
  1016. }
  1017. /**
  1018. * 播放器状态
  1019. * @enum {number}
  1020. */
  1021. const ZegoMediaPlayerState =
  1022. {
  1023. /**
  1024. * @description 不在播放
  1025. */
  1026. NoPlay: 0,
  1027. /**
  1028. * @description 播放中
  1029. */
  1030. Playing: 1,
  1031. /**
  1032. * @description 暂停播放
  1033. */
  1034. Pausing: 2,
  1035. /**
  1036. * @description 播放结束
  1037. */
  1038. PlayEnded: 3,
  1039. }
  1040. /**
  1041. * 播放器网络事件
  1042. * @enum {number}
  1043. */
  1044. const ZegoMediaPlayerNetworkEvent =
  1045. {
  1046. /**
  1047. * @description 网络资源播放不畅,开始尝试缓存数据
  1048. */
  1049. BufferBegin: 0,
  1050. /**
  1051. * @description 网络资源可以顺畅播放
  1052. */
  1053. BufferEnded: 1,
  1054. }
  1055. /**
  1056. * 播放器声道
  1057. * @enum {number}
  1058. */
  1059. const ZegoMediaPlayerAudioChannel =
  1060. {
  1061. /**
  1062. * @description 左声道
  1063. */
  1064. Left: 0,
  1065. /**
  1066. * @description 右声道
  1067. */
  1068. Right: 1,
  1069. /**
  1070. * @description 全部声道
  1071. */
  1072. All: 2,
  1073. }
  1074. /**
  1075. * 音效播放器状态
  1076. * @enum {number}
  1077. */
  1078. const ZegoAudioEffectPlayState =
  1079. {
  1080. /**
  1081. * @description 不在播放
  1082. */
  1083. NoPlay: 0,
  1084. /**
  1085. * @description 播放中
  1086. */
  1087. Playing: 1,
  1088. /**
  1089. * @description 暂停播放
  1090. */
  1091. Pausing: 2,
  1092. /**
  1093. * @description 播放结束
  1094. */
  1095. PlayEnded: 3,
  1096. }
  1097. /**
  1098. * 录制类型
  1099. * @enum {number}
  1100. */
  1101. const ZegoDataRecordType =
  1102. {
  1103. /**
  1104. * @description 该字段表示纯音频 SDK 默认录制音频,音视频 SDK 默认录制音视频,当录制 .aac 格式的文件时默认也是录制音频
  1105. */
  1106. Default: 0,
  1107. /**
  1108. * @description 只录制音频
  1109. */
  1110. OnlyAudio: 1,
  1111. /**
  1112. * @description 只录制视频,音频的 SDK 和录制 .aac 格式文件时无效
  1113. */
  1114. OnlyVideo: 2,
  1115. /**
  1116. * @description 同时录制音频、视频。音频的 SDK 和录制 .aac 格式文件时录制出来也只有音频
  1117. */
  1118. AudioAndVideo: 3,
  1119. }
  1120. /**
  1121. * 录制状态
  1122. * @enum {number}
  1123. */
  1124. const ZegoDataRecordState =
  1125. {
  1126. /**
  1127. * @description 未录制状态,当录制出错或者未开始录制之前处于此状态
  1128. */
  1129. NoRecord: 0,
  1130. /**
  1131. * @description 正在录制中,当成功调用 [startRecordingCapturedData] 函数之后处于此状态
  1132. */
  1133. Recording: 1,
  1134. /**
  1135. * @description 录制成功
  1136. */
  1137. Success: 2,
  1138. }
  1139. /**
  1140. * 网络模式
  1141. * @enum {number}
  1142. */
  1143. const ZegoNetworkMode =
  1144. {
  1145. /**
  1146. * @description 离线(无网络)
  1147. */
  1148. Offline: 0,
  1149. /**
  1150. * @description 未知网络模式
  1151. */
  1152. Unknown: 1,
  1153. /**
  1154. * @description 有线以太网 (LAN)
  1155. */
  1156. Ethernet: 2,
  1157. /**
  1158. * @description 无线局域网 (WLAN)
  1159. */
  1160. Wifi: 3,
  1161. /**
  1162. * @description 2G 网络 (GPRS/EDGE/CDMA1x/etc.)
  1163. */
  1164. Mode2G: 4,
  1165. /**
  1166. * @description 3G 网络 (WCDMA/HSDPA/EVDO/etc.)
  1167. */
  1168. Mode3G: 5,
  1169. /**
  1170. * @description 4G 网络 (LTE)
  1171. */
  1172. Mode4G: 6,
  1173. /**
  1174. * @description 5G 网络 (NR (NSA/SA))
  1175. */
  1176. Mode5G: 7,
  1177. }
  1178. /**
  1179. * 网速测试类型
  1180. * @enum {number}
  1181. */
  1182. const ZegoNetworkSpeedTestType =
  1183. {
  1184. /**
  1185. * @description 上行测速
  1186. */
  1187. Uplink: 0,
  1188. /**
  1189. * @description 下行测速
  1190. */
  1191. Downlink: 1,
  1192. }
  1193. /**
  1194. * @typedef {Object} ZegoLogConfig - 日志配置
  1195. * @property {string} logPath - 日志文件的存储路径。详情描述:用于自定义日志文件的存储路径。业务场景:当需要自定义日志存储路径时,需要这个配置。是否必填:否。默认值:各平台的默认路径有所不同,具体参考官网文档:https://doc-zh.zego.im/article/6467。注意事项:开发者需要确保对该路径下文件的读写权限。
  1196. * @property {number} logSize - 日志文件大小上限,单位Bytes。详情描述:用于自定义日志文件大小上限。业务场景:当需要自定义日志文件大小上限时,需要这个配置。是否必填:否。默认值:5MB (5 * 1024 * 1024 Bytes)。取值范围:最小1MB (1 * 1024 * 1024 Bytes),最大100M (100 * 1024 * 1024 Bytes),0表示不需要写日志。注意事项:日志文件大小上限越大,承载的日志信息越多,但是日志上传时间也会更长。
  1197. */
  1198. /**
  1199. * @typedef {Object} ZegoEngineProfile - 创建引擎的配置
  1200. * @property {number} appID - ZEGO 为开发者签发的应用 ID,请从 ZEGO 管理控制台 https://console-express.zego.im 申请。appID 取值范围 0~4294967295。
  1201. * @property {string} appSign - 每个 AppID 对应的应用签名,请从 ZEGO 管理控制台申请。该参数为包含 64 个字符的字符串,字符取值范围:'0' ~ '9', 'a' ~ 'z'。例:"9dc9a25bh2f2137446897071c8c033fa33b91c3dd2a85e0c000ae82c0dad3"。
  1202. * @property {ZegoScenario} scenario - 产品的应用场景,开发者可根据所开发的 App 的场景选择其中一个,SDK 会针对该场景的作一些优化。当设置具体场景后,开发者若需要定制化更多参数,依然可以调用具体函数来设置具体参数。不同应用场景的建议配置可以参考:https://doc-zh.zego.im/faq/profile_difference。
  1203. */
  1204. /**
  1205. * @typedef {Object} ZegoEngineConfig - 引擎进阶配置
  1206. * @property {ZegoLogConfig} logConfig - 日志配置,未设置时使用默认配置(详见 [ZegoLogConfig])。
  1207. * @property {map<string, string>} advancedConfig - 进阶功能配置,未设置时默认不使用任何特殊功能,如需使用,请联系 ZEGO 技术支持。
  1208. */
  1209. /**
  1210. * @typedef {Object} ZegoRoomConfig - 房间进阶配置
  1211. * @property {number} maxMemberCount - 房间最大用户数量,传 0 视为不限制,默认无限制
  1212. * @property {boolean} isUserStatusNotify - 是否开启用户进出房间回调通知 [onRoomUserUpdate],默认关闭。若开发者需要使用 ZEGO 房间用户广播通知,请确保每个登录的用户都将此标记设置为true
  1213. * @property {string} token - 由开发者业务服务器下发的 token,用以保证安全性,生成规则详见 用户权限控制 https://doc-zh.zego.im/article/10360,默认为空字符串,即不鉴权。
  1214. */
  1215. /**
  1216. * @typedef {Object} ZegoVideoConfig - 视频配置
  1217. * @property {number} captureWidth - 采集分辨率宽度,控制摄像头图像采集的宽度。SDK 要求设置此成员为偶数。仅摄像头启动前且没有使用自定义视频采集时,设置有效。出于性能考虑,SDK 在采集摄像头画面后、渲染预览画面之前,就将视频帧缩放为编码分辨率,因此预览画面的分辨率是编码分辨率,如果您需要预览画面的分辨率为此值,请先调用 [setCapturePipelineScaleMode] 将采集缩放模式改为 [Post]
  1218. * @property {number} captureHeight - 采集分辨率高度,控制摄像头图像采集的高度。SDK 要求设置此成员为偶数。仅摄像头启动前且没有使用自定义视频采集时,设置有效。出于性能考虑,SDK 在采集摄像头画面后、渲染预览画面之前,就将视频帧缩放为编码分辨率,因此预览画面的分辨率是编码分辨率,如果您需要预览画面的分辨率为此值,请先调用 [setCapturePipelineScaleMode] 将采集缩放模式改为 [Post]
  1219. * @property {number} encodeWidth - 编码分辨率宽度,控制编码器编码推流的图像宽度。SDK 要求设置此成员为偶数。推流前后设置均可生效
  1220. * @property {number} encodeHeight - 编码分辨率高度,控制编码器编码推流的图像高度。SDK 要求设置此成员为偶数。推流前后设置均可生效
  1221. * @property {number} fps - 帧率,控制摄像头采集帧率以及编码器编码帧率的大小。仅摄像头启动前设置有效
  1222. * @property {number} bitrate - 码率,单位为 kbps。推流前后设置均可生效
  1223. * @property {ZegoVideoCodecID} codecID - 要使用的编码器,默认为 default。仅在推流前设置生效
  1224. */
  1225. /**
  1226. * @typedef {Object} ZegoSEIConfig - SEI 配置
  1227. * @property {ZegoSEIType} type - SEI 类型
  1228. */
  1229. /**
  1230. * @typedef {Object} ZegoVoiceChangerParam - 变声器参数
  1231. * @property {number} pitch - 音高参数,取值范围 [-8.0, 8.0],数值越大声音越尖,设为 0.0 即关闭变声器。注意:变声音效只针对采集的声音有效。
  1232. */
  1233. /**
  1234. * @typedef {Object} ZegoReverbParam - 音频混响参数
  1235. * @property {number} roomSize - 房间大小,取值范围 [0.0, 1.0],用于控制产生混响模拟的 “房间” 的大小,房间越大,混响越强
  1236. * @property {number} reverberance - 余响,取值范围 [0.0, 0.5],用于控制混响的拖尾长度
  1237. * @property {number} damping - 混响阻尼,取值范围 [0.0, 2.0],控制混响的衰减程度,阻尼越大,衰减越大
  1238. * @property {number} dryWetRatio - 干湿比,取值范围大于等于 0.0,控制混响与直达声和早期反射声之间的比 例,干(dry)的部分默认定为1,当干湿比设为较小时,湿(wet)的比例较大,此时混响较强
  1239. */
  1240. /**
  1241. * @typedef {Object} ZegoReverbAdvancedParam - 音频混响高级参数
  1242. * @property {number} roomSize - 房间大小(百分比),取值范围 [0.0, 100.0],用于控制产生混响模拟的 “房间” 的大小,房间越大,混响越强
  1243. * @property {number} reverberance - 余响(百分比),取值范围 [0.0, 100.0],用于控制混响的拖尾长度
  1244. * @property {number} damping - 混响阻尼(百分比),取值范围 [0.0, 100.0],控制混响的衰减程度,阻尼越大,衰减越大
  1245. * @property {boolean} wetOnly - 只有湿信号。设置只输出混响声音,不叠加原始输入声音,默认是false。
  1246. * @property {number} wetGain - 湿信号增益(dB),取值范围 [-20.0, 10.0]
  1247. * @property {number} dryGain - 干信号增益(dB),取值范围 [-20.0, 10.0]
  1248. * @property {number} toneLow - 低频衰减,默认为不衰减(100%)
  1249. * @property {number} toneHigh - 高频衰减,默认为不衰减(100%)
  1250. * @property {number} preDelay - 初始延迟时间(ms)。取值范围[0, 200]
  1251. * @property {number} stereoWidth - 立体声宽度(百分比),默认值为 0%
  1252. */
  1253. /**
  1254. * @typedef {Object} ZegoReverbEchoParam - 音频混响回声参数
  1255. * @property {number} inGain - 输入音频信号的增益,取值范围 [0.0, 1.0]
  1256. * @property {number} outGain - 输出音频信号的增益,取值范围 [0.0, 1.0]
  1257. * @property {number} numDelays - 回声数量,取值范围 [0, 7]
  1258. * @property {number[]} delay - 回声信号分别的延时,单位为毫秒,取值范围 [0, 5000] ms
  1259. * @property {number[]} decay - 回声信号分别的衰减系数,取值范围 [0.0, 1.0]
  1260. */
  1261. /**
  1262. * @typedef {Object} ZegoUser - 用户对象
  1263. * @property {string} userID - 用户 ID,最大 64 字节的字符串。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
  1264. * @property {string} userName - 用户名,最大长度不超过 256 字节的字符串。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  1265. */
  1266. /**
  1267. * @typedef {Object} ZegoStream - 音视频流对象
  1268. * @property {ZegoUser} user - 用户对象实例。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  1269. * @property {string} streamID - 流 ID,长度不超过256的字符串。不可以包含 URL 关键字,否则推拉流失败。仅支持数字,英文字符 和 '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
  1270. * @property {string} extraInfo - 流附加信息
  1271. */
  1272. /**
  1273. * @typedef {Object} ZegoRoomExtraInfo - 房间附加消息
  1274. * @property {string} key - 房间附加消息的键
  1275. * @property {string} value - 房间附加消息的值
  1276. * @property {ZegoUser} updateUser - 更新房间附加消息的用户。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  1277. * @property {number} updateTime - 房间附加消息的更新时间,UNIX 时间戳,单位为毫秒
  1278. */
  1279. /**
  1280. * @typedef {Object} ZegoRect - 视图相关所使用的坐标
  1281. * @property {number} x - 矩形左上角在坐标系 X 轴上的值
  1282. * @property {number} y - 矩形左上角在坐标系 Y 轴上的值
  1283. * @property {number} width - 矩形宽度
  1284. * @property {number} height - 矩形高度
  1285. */
  1286. /**
  1287. * @typedef {Object} ZegoView - 视图对象
  1288. * @property {ZegoViewMode} viewMode - 视图模式,默认为 ZegoViewModeAspectFit
  1289. * @property {number} backgroundColor - 背景颜色,格式为 0xRRGGBB,默认为黑色即 0x000000
  1290. * @property {canvas} canvas - html canvas element
  1291. * @property {boolean} preserveDrawingBuffer - webgl context 保存缓存
  1292. */
  1293. /**
  1294. * @typedef {Object} ZegoPublishStreamQuality - 推流质量对象
  1295. * @property {number} videoCaptureFPS - 视频采集帧率,单位为 f/s
  1296. * @property {number} videoEncodeFPS - 视频编码帧率,单位为 f/s
  1297. * @property {number} videoSendFPS - 视频发送帧率,单位为 f/s
  1298. * @property {number} videoKBPS - 视频码率,单位为 kbps
  1299. * @property {number} audioCaptureFPS - 音频采集帧率,单位为 f/s
  1300. * @property {number} audioSendFPS - 音频发送帧率,单位为 f/s
  1301. * @property {number} audioKBPS - 音频码率,单位为 kbps
  1302. * @property {number} rtt - 本端至服务端的延迟,单位为毫秒
  1303. * @property {number} packetLostRate - 丢包率,单位为百分比,0.0 ~ 1.0
  1304. * @property {ZegoStreamQualityLevel} level - 推流质量级别
  1305. * @property {boolean} isHardwareEncode - 是否开启硬件编码
  1306. * @property {ZegoVideoCodecID} videoCodecID - 视频编码格式
  1307. * @property {number} totalSendBytes - 已发送的总字节数,包括音频、视频和SEI等
  1308. * @property {number} audioSendBytes - 已发送的音频字节数
  1309. * @property {number} videoSendBytes - 已发送的视频字节数
  1310. */
  1311. /**
  1312. * @typedef {Object} ZegoCDNConfig - CDN 配置对象
  1313. * @property {string} url - CDN 的 URL
  1314. * @property {string} authParam - URL 的鉴权参数
  1315. */
  1316. /**
  1317. * @typedef {Object} ZegoStreamRelayCDNInfo - 转推 CDN 信息
  1318. * @property {string} url - CDN 推流的 URL
  1319. * @property {ZegoStreamRelayCDNState} state - 转推状态
  1320. * @property {ZegoStreamRelayCDNUpdateReason} updateReason - 转推状态变更的原因
  1321. * @property {number} stateTime - 状态发生的时间,UNIX 时间戳,单位为毫秒
  1322. */
  1323. /**
  1324. * @typedef {Object} ZegoPlayerConfig - 拉流进阶配置。
  1325. * @property {ZegoStreamResourceMode} resourceMode - 拉流资源策略模式。
  1326. * @property {ZegoCDNConfig} cdnConfig - 拉流的 CDN 配置,若设置后,则按照 URL 拉流而不是按照 streamID 拉流,此后 streamID 仅作为 SDK 内部回调的标识。
  1327. * @property {ZegoPlayerVideoLayer} videoLayer - 设置拉流的视频分层。
  1328. * @property {string} roomID - 房间 ID。
  1329. */
  1330. /**
  1331. * @typedef {Object} ZegoPlayStreamQuality - 拉流质量对象
  1332. * @property {number} videoRecvFPS - 视频接收帧率,单位为 f/s
  1333. * @property {number} videoDejitterFPS - 视频抗抖动帧率,单位为 f/s
  1334. * @property {number} videoDecodeFPS - 视频解码帧率,单位为 f/s
  1335. * @property {number} videoRenderFPS - 视频渲染帧率,单位为 f/s
  1336. * @property {number} videoKBPS - 视频码率,单位为 kbps
  1337. * @property {number} videoBreakRate - 视频卡顿率,单位为(卡顿次数/每10秒)
  1338. * @property {number} audioRecvFPS - 音频接收帧率,单位为 f/s
  1339. * @property {number} audioDejitterFPS - 音频抗抖动帧率,单位为 f/s
  1340. * @property {number} audioDecodeFPS - 音频解码帧率,单位为 f/s
  1341. * @property {number} audioRenderFPS - 音频渲染帧率,单位为 f/s
  1342. * @property {number} audioKBPS - 音频码率,单位为 kbps
  1343. * @property {number} audioBreakRate - 音频卡顿率,单位为(卡顿次数/每10秒)
  1344. * @property {number} rtt - 服务端至本端的延迟,单位为毫秒
  1345. * @property {number} packetLostRate - 丢包率,单位为百分比,0.0 ~ 1.0
  1346. * @property {number} peerToPeerDelay - 端到端延迟,单位为毫秒
  1347. * @property {number} peerToPeerPacketLostRate - 端到端丢包率,单位为百分比,0.0 ~ 1.0
  1348. * @property {ZegoStreamQualityLevel} level - 拉流质量级别
  1349. * @property {number} delay - 本端接收到数据后到播放的延迟,单位为毫秒
  1350. * @property {number} avTimestampDiff - 视频时间戳相对于音频时间戳的差值,用于反映音画同步情况,单位为毫秒。此值小于 0 表示视频超前音频的毫秒数, 大于 0 表示视频滞后音频的毫秒数, 等于0表示无差别。 当绝对值小于200,可基本认为音画同步,当绝对值连续 10 秒大于 200 可以认为异常
  1351. * @property {boolean} isHardwareDecode - 是否开启硬件解码
  1352. * @property {ZegoVideoCodecID} videoCodecID - 视频编码格式
  1353. * @property {number} totalRecvBytes - 已接收的总字节数,包括音频、视频和 SEI 等
  1354. * @property {number} audioRecvBytes - 已接收的音频字节数
  1355. * @property {number} videoRecvBytes - 已接收的视频字节数
  1356. */
  1357. /**
  1358. * @typedef {Object} ZegoDeviceInfo - 设备信息
  1359. * @property {string} deviceID - 设备 ID
  1360. * @property {string} deviceName - 设备名称
  1361. */
  1362. /**
  1363. * @typedef {Object} ZegoPerformanceStatus - 系统性能监控状态
  1364. * @property {number} cpuUsageApp - 当前 App 的 CPU 使用率,取值范围 [0, 1]
  1365. * @property {number} cpuUsageSystem - 当前系统的 CPU 使用率,取值范围 [0, 1]
  1366. * @property {number} memoryUsageApp - 当前 App 的运行内存使用率,取值范围 [0, 1]
  1367. * @property {number} memoryUsageSystem - 当前系统的运行内存使用率,取值范围 [0, 1]
  1368. * @property {number} memoryUsedApp - 当前 App 的运行内存使用量,单位为 MB
  1369. */
  1370. /**
  1371. * @typedef {Object} ZegoMixerAudioConfig - 混流音频配置
  1372. * @property {number} bitrate - 音频码率,单位为 kbps,默认为 48 kbps,开始混流任务后不能修改
  1373. * @property {ZegoAudioChannel} channel - 音频声道,默认为 Mono 单声道
  1374. * @property {ZegoAudioCodecID} codecID - 编码 ID,默认为 ZegoAudioCodecIDDefault
  1375. */
  1376. /**
  1377. * @typedef {Object} ZegoMixerVideoConfig - 混流视频配置
  1378. * @property {number} width - 视频分辨率宽
  1379. * @property {number} height - 视频分辨率高
  1380. * @property {number} fps - 视频帧率,开始混流任务后不能修改
  1381. * @property {number} bitrate - 视频码率,单位为 kbps
  1382. */
  1383. /**
  1384. * @typedef {Object} ZegoMixerInput - 混流输入
  1385. * @property {string} streamID - 流 ID,长度不超过256的字符串。不可以包含 URL 关键字,否则推拉流失败。仅支持数字,英文字符 和 '~', '!', '@', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', '/', '\'。
  1386. * @property {ZegoMixerInputContentType} contentType - 混流内容类型
  1387. * @property {ZegoRect} layout - 流的布局。当混入的流为音频流时(即 ContentType 参数设置为音频混流类型),SDK内部不处理布局字段,此时无需关注该参数。
  1388. * @property {number} soundLevelID - 当混流任务开启了声浪回调时,需要为每条输入流指定唯一的 soundLevelID
  1389. * @property {boolean} isAudioFocus - 当前输入流是否开启焦点语音,开启了会突出此路流的声音
  1390. */
  1391. /**
  1392. * @typedef {Object} ZegoMixerOutput - 混流输出对象
  1393. * @property {string} target - 混流输出目标,URL 或者流 ID,若为 URL 格式 目前只支持 RTMP URL 格式:rtmp://xxxxxxxx, 且不能传入两个相同的混流输出的地址。
  1394. */
  1395. /**
  1396. * @typedef {Object} ZegoWatermark - 水印对象
  1397. * @property {string} imageURL - 水印图片路径。支持本地文件绝对路径 (file://xxx)。 格式支持 png、jpg。
  1398. * @property {ZegoRect} layout - 水印图片的大小方位
  1399. */
  1400. /**
  1401. * @typedef {Object} ZegoMixerTask - 混流任务对象
  1402. * @property {string} taskID - 混流任务 ID
  1403. * @property {ZegoMixerInput[]} inputList - 混流任务的输入流列表
  1404. * @property {ZegoMixerOutput[]} outputList - 混流任务的输出流列表
  1405. * @property {ZegoMixerVideoConfig} videoConfig - 混流任务的视频配置
  1406. * @property {ZegoMixerAudioConfig} audioConfig - 混流任务的音频配置
  1407. * @property {ZegoWatermark} watermark - 混流任务的水印
  1408. * @property {string} backgroundImageURL - 混流任务的背景图 URL
  1409. * @property {boolean} enableSoundLevel - 是否开启混流的声浪回调通知,开启后拉混流时可通过 [onMixerSoundLevelUpdate] 回调收到每条单流的声浪信息
  1410. * @property {map<string, string>} advancedConfig - 设置高级配置,如可用于指定视频编码等功能。如需使用,联系 ZEGO 技术支持。
  1411. */
  1412. /**
  1413. * @typedef {Object} ZegoBroadcastMessageInfo - 房间广播消息
  1414. * @property {string} message - 消息内容
  1415. * @property {number} messageID - 消息 ID
  1416. * @property {number} sendTime - 消息的发送时间,UNIX 时间戳,单位为毫秒
  1417. * @property {ZegoUser} fromUser - 消息的发送者。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  1418. */
  1419. /**
  1420. * @typedef {Object} ZegoBarrageMessageInfo - 房间弹幕消息
  1421. * @property {string} message - 消息内容
  1422. * @property {string} messageID - 消息 ID
  1423. * @property {number} sendTime - 消息的发送时间,UNIX 时间戳,单位为毫秒
  1424. * @property {ZegoUser} fromUser - 消息的发送者。请勿在此字段填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  1425. */
  1426. /**
  1427. * @typedef {Object} ZegoAudioConfig - 推流音频配置
  1428. * @property {number} bitrate - 音频码率,单位为 kbps,默认为 48 kbps. 该配置推流前后设置均可生效
  1429. * @property {ZegoAudioChannel} channel - 音频编码声道,控制编码器编码的声道数。默认为 Mono 单声道。仅在推流前设置生效。
  1430. * @property {ZegoAudioCodecID} codecID - 编码 ID,默认为 ZegoAudioCodecIDDefault。仅在推流前设置生效。
  1431. */
  1432. /**
  1433. * @typedef {Object} ZegoDataRecordConfig - 录制配置
  1434. * @property {string} filePath - 录制文件保存路径,绝对路径,需要包含文件名, 文件名需指明后缀,目前支持 .mp4/.flv/.aac 格式文件。若多次录制为同一个路径,会覆盖同名的文件。最大长度应小于 1024 字节。
  1435. * @property {ZegoDataRecordType} recordType - 录制文件媒体类型
  1436. */
  1437. /**
  1438. * @typedef {Object} ZegoDataRecordProgress - 文件录制进度
  1439. * @property {number} duration - 当前录制时长, 单位为毫秒
  1440. * @property {number} currentFileSize - 当前录制文件大小, 单位为字节
  1441. */
  1442. /**
  1443. * @typedef {Object} ZegoNetworkSpeedTestConfig - 网络测速配置
  1444. * @property {boolean} testUplink - 是否进行上行测速
  1445. * @property {number} expectedUplinkBitrate - 单位 kbps。用于确定网络上行环境是否适合推送指定码率的数据,建议用推流的码率来测试。
  1446. * @property {boolean} testDownlink - 是否进行下行测速
  1447. * @property {number} expectedDownlinkBitrate - 单位 kbps。用于确定网络下行环境是否适合拉取指定码率的数据,建议用推流的码率来测试。
  1448. */
  1449. /**
  1450. * @typedef {Object} ZegoNetworkSpeedTestQuality - 网络测速质量
  1451. * @property {number} connectCost - 连接服务器耗时,单位毫秒。测速过程中如果网络连接断开会自动发起重连,此变量会相应更新。
  1452. * @property {number} rtt - rtt,单位毫秒
  1453. * @property {number} packetLostRate - 丢包率,单位为百分比,0.0 ~ 1.0
  1454. */
  1455. /**
  1456. * @typedef {Object} ZegoAudioEffectPlayConfig - 音效播放器播放配置
  1457. * @property {number} playCount - 播放次数,当设为 0 时则无限循环播放,直到用户调用 [stop],默认为 1 即仅播放一次。
  1458. * @property {boolean} isPublishOut - 是否将音效混入推流中,默认 false。
  1459. */
  1460. module.exports = {
  1461. ZegoScenario,
  1462. ZegoLanguage,
  1463. ZegoEngineState,
  1464. ZegoRoomState,
  1465. ZegoPublishChannel,
  1466. ZegoViewMode,
  1467. ZegoVideoMirrorMode,
  1468. ZegoSEIType,
  1469. ZegoPublisherState,
  1470. ZegoVoiceChangerPreset,
  1471. ZegoReverbPreset,
  1472. ZegoVideoConfigPreset,
  1473. ZegoStreamQualityLevel,
  1474. ZegoAudioChannel,
  1475. ZegoAudioCaptureStereoMode,
  1476. ZegoAudioCodecID,
  1477. ZegoVideoCodecID,
  1478. ZegoPlayerVideoLayer,
  1479. ZegoAECMode,
  1480. ZegoANSMode,
  1481. ZegoTrafficControlProperty,
  1482. ZegoTrafficControlMinVideoBitrateMode,
  1483. ZegoPlayerState,
  1484. ZegoPlayerMediaEvent,
  1485. ZegoStreamResourceMode,
  1486. ZegoUpdateType,
  1487. ZegoStreamRelayCDNState,
  1488. ZegoStreamRelayCDNUpdateReason,
  1489. ZegoRemoteDeviceState,
  1490. ZegoAudioDeviceType,
  1491. ZegoAudioRoute,
  1492. ZegoMixerInputContentType,
  1493. ZegoCapturePipelineScaleMode,
  1494. ZegoVideoFrameFormat,
  1495. ZegoVideoBufferType,
  1496. ZegoVideoFrameFormatSeries,
  1497. ZegoVideoFlipMode,
  1498. ZegoAudioConfigPreset,
  1499. ZegoMediaPlayerState,
  1500. ZegoMediaPlayerNetworkEvent,
  1501. ZegoMediaPlayerAudioChannel,
  1502. ZegoAudioEffectPlayState,
  1503. ZegoDataRecordType,
  1504. ZegoDataRecordState,
  1505. ZegoNetworkMode,
  1506. ZegoNetworkSpeedTestType,
  1507. ZegoTrafficControlFocusOnMode,
  1508. ZegoVideoStreamType
  1509. }