ZegoExpressEngineImpl.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. import { pluginVersion } from "../index";
  2. import { ZegoPublishChannel } from "../ZegoExpressDefines";
  3. // @ts-ignore
  4. const ZegoEvent = uni.requireNativePlugin('globalEvent');
  5. // @ts-ignore
  6. const ZegoExpressNativeEngineMoudle = uni.requireNativePlugin('zego-ZegoExpressUniAppSDK_ZegoExpressUniAppEngine');
  7. const Prefix = ZegoExpressNativeEngineMoudle.prefix();
  8. let engine;
  9. export class ZegoExpressEngineImpl {
  10. static _callMethod(method, args) {
  11. return new Promise((resolve, _) => {
  12. ZegoExpressNativeEngineMoudle.callMethod({ method: method, args: args }, (res) => {
  13. resolve(res);
  14. });
  15. });
  16. }
  17. static getInstance() {
  18. if (engine) {
  19. return engine;
  20. }
  21. throw new Error('Get instance failed, Please create engine first');
  22. }
  23. static async createEngineWithProfile(profile) {
  24. if (engine) {
  25. return engine;
  26. }
  27. await ZegoExpressEngineImpl._callMethod("createEngineWithProfile", { profile });
  28. engine = new ZegoExpressEngineImpl();
  29. await ZegoExpressEngineImpl._callMethod("setPluginVersion", { version: pluginVersion });
  30. return engine;
  31. }
  32. static async createEngine(appID, appSign, isTestEnv, scenario) {
  33. if (engine) {
  34. return engine;
  35. }
  36. await ZegoExpressEngineImpl._callMethod("createEngine", { appID, appSign, isTestEnv, scenario });
  37. engine = new ZegoExpressEngineImpl();
  38. await ZegoExpressEngineImpl._callMethod("setPluginVersion", { version: pluginVersion });
  39. return engine;
  40. }
  41. static async destroyEngine() {
  42. engine = undefined;
  43. ZegoExpressEngineImpl._mediaPlayerMap.forEach((_, key) => {
  44. ZegoExpressEngineImpl._callMethod("destroyMediaPlayer", { key });
  45. });
  46. await ZegoExpressEngineImpl._callMethod("destroyEngine");
  47. ZegoExpressEngineImpl._listeners.forEach((_, key) => {
  48. ZegoEvent.removeEventListener(Prefix + key);
  49. });
  50. ZegoExpressEngineImpl._listeners.clear();
  51. ZegoExpressEngineImpl._mediaPlayerMap.clear();
  52. }
  53. static setEngineConfig(config) {
  54. return ZegoExpressEngineImpl._callMethod("setEngineConfig", { config });
  55. }
  56. static setRoomMode(mode) {
  57. return ZegoExpressEngineImpl._callMethod("setRoomMode", { mode });
  58. }
  59. on(event, callback) {
  60. const native_listener = (res) => {
  61. const { data } = res;
  62. // @ts-ignore
  63. callback(...data);
  64. };
  65. let map = ZegoExpressEngineImpl._listeners.get(event);
  66. if (map === undefined) {
  67. map = new Map();
  68. ZegoExpressEngineImpl._listeners.set(event, map);
  69. }
  70. map.set(callback, native_listener);
  71. ZegoEvent.addEventListener(Prefix + event, native_listener);
  72. }
  73. off(event, callback) {
  74. if (callback === undefined) {
  75. ZegoEvent.removeEventListener(Prefix + event);
  76. ZegoExpressEngineImpl._listeners.delete(event);
  77. }
  78. else {
  79. const map = ZegoExpressEngineImpl._listeners.get(event);
  80. if (map === undefined)
  81. return;
  82. ZegoEvent.removeEventListener(Prefix + event, map.get(callback));
  83. map.delete(callback);
  84. }
  85. }
  86. setLogConfig(config) {
  87. return ZegoExpressEngineImpl._callMethod("setLogConfig", { config });
  88. }
  89. getVersion() {
  90. return ZegoExpressEngineImpl._callMethod("getVersion");
  91. }
  92. uploadLog() {
  93. return ZegoExpressEngineImpl._callMethod("uploadLog");
  94. }
  95. callExperimentalAPI(params) {
  96. return ZegoExpressEngineImpl._callMethod("callExperimentalAPI", { params });
  97. }
  98. setDummyCaptureImagePath(filePath, channel = ZegoPublishChannel.Main) {
  99. return ZegoExpressEngineImpl._callMethod("setDummyCaptureImagePath", { filePath, channel });
  100. }
  101. loginRoom(roomID, user, config) {
  102. return ZegoExpressEngineImpl._callMethod("loginRoom", { roomID, user, config });
  103. }
  104. logoutRoom(roomID) {
  105. return ZegoExpressEngineImpl._callMethod("logoutRoom", { roomID });
  106. }
  107. loginMultiRoom(roomID, config) {
  108. return ZegoExpressEngineImpl._callMethod("loginMultiRoom", { roomID, config });
  109. }
  110. switchRoom(fromRoomID, toRoomID, config) {
  111. return ZegoExpressEngineImpl._callMethod("switchRoom", { fromRoomID, toRoomID, config });
  112. }
  113. renewToken(roomID, token) {
  114. return ZegoExpressEngineImpl._callMethod("renewToken", { roomID, token });
  115. }
  116. setRoomExtraInfo(value, key, roomID) {
  117. return ZegoExpressEngineImpl._callMethod("setRoomExtraInfo", { value, key, roomID });
  118. }
  119. startPublishingStream(streamID, channel = ZegoPublishChannel.Main, config) {
  120. return ZegoExpressEngineImpl._callMethod("startPublishingStream", { streamID, channel, config });
  121. }
  122. stopPublishingStream(channel = ZegoPublishChannel.Main) {
  123. return ZegoExpressEngineImpl._callMethod("stopPublishingStream", { channel });
  124. }
  125. setStreamExtraInfo(extraInfo, channel = ZegoPublishChannel.Main) {
  126. return ZegoExpressEngineImpl._callMethod("setStreamExtraInfo", { extraInfo, channel });
  127. }
  128. startPreview(channel = ZegoPublishChannel.Main) {
  129. return ZegoExpressEngineImpl._callMethod("startPreview", { channel });
  130. }
  131. stopPreview(channel = ZegoPublishChannel.Main) {
  132. return ZegoExpressEngineImpl._callMethod("stopPreview", { channel });
  133. }
  134. setVideoConfig(config, channel = ZegoPublishChannel.Main) {
  135. return ZegoExpressEngineImpl._callMethod("setVideoConfig", { config, channel });
  136. }
  137. getVideoConfig(channel = ZegoPublishChannel.Main) {
  138. return ZegoExpressEngineImpl._callMethod("getVideoConfig", { channel });
  139. }
  140. setVideoMirrorMode(mode, channel = ZegoPublishChannel.Main) {
  141. return ZegoExpressEngineImpl._callMethod("setVideoMirrorMode", { mode, channel });
  142. }
  143. setAppOrientation(orientation, channel = ZegoPublishChannel.Main) {
  144. return ZegoExpressEngineImpl._callMethod("setAppOrientation", { orientation, channel });
  145. }
  146. setAudioConfig(config) {
  147. return ZegoExpressEngineImpl._callMethod("setAudioConfig", { config });
  148. }
  149. getAudioConfig() {
  150. return ZegoExpressEngineImpl._callMethod("getAudioConfig");
  151. }
  152. setPublishStreamEncryptionKey(key, channel = ZegoPublishChannel.Main) {
  153. return ZegoExpressEngineImpl._callMethod("setPublishStreamEncryptionKey", { key, channel });
  154. }
  155. takePublishStreamSnapshot(channel = ZegoPublishChannel.Main) {
  156. return ZegoExpressEngineImpl._callMethod("takePublishStreamSnapshot", { channel });
  157. }
  158. mutePublishStreamAudio(mute, channel = ZegoPublishChannel.Main) {
  159. return ZegoExpressEngineImpl._callMethod("mutePublishStreamAudio", { mute, channel });
  160. }
  161. mutePublishStreamVideo(mute, channel = ZegoPublishChannel.Main) {
  162. return ZegoExpressEngineImpl._callMethod("mutePublishStreamVideo", { mute, channel });
  163. }
  164. enableTrafficControl(enable, property, channel = ZegoPublishChannel.Main) {
  165. return ZegoExpressEngineImpl._callMethod("enableTrafficControl", { enable, property, channel });
  166. }
  167. setMinVideoBitrateForTrafficControl(bitrate, mode, channel = ZegoPublishChannel.Main) {
  168. return ZegoExpressEngineImpl._callMethod("setMinVideoBitrateForTrafficControl", { bitrate, mode, channel });
  169. }
  170. setTrafficControlFocusOn(mode, channel = ZegoPublishChannel.Main) {
  171. return ZegoExpressEngineImpl._callMethod("setTrafficControlFocusOn", { mode, channel });
  172. }
  173. setCaptureVolume(volume) {
  174. return ZegoExpressEngineImpl._callMethod("setCaptureVolume", { volume });
  175. }
  176. setAudioCaptureStereoMode(mode) {
  177. return ZegoExpressEngineImpl._callMethod("setAudioCaptureStereoMode", { mode });
  178. }
  179. addPublishCdnUrl(targetURL, streamID) {
  180. return ZegoExpressEngineImpl._callMethod("addPublishCdnUrl", { targetURL, streamID });
  181. }
  182. removePublishCdnUrl(targetURL, streamID) {
  183. return ZegoExpressEngineImpl._callMethod("removePublishCdnUrl", { targetURL, streamID });
  184. }
  185. enablePublishDirectToCDN(enable, config, channel = ZegoPublishChannel.Main) {
  186. return ZegoExpressEngineImpl._callMethod("enablePublishDirectToCDN", { enable, config, channel });
  187. }
  188. setPublishWatermark(watermark, isPreviewVisible, channel = ZegoPublishChannel.Main) {
  189. return ZegoExpressEngineImpl._callMethod("setPublishWatermark", { watermark, isPreviewVisible, channel });
  190. }
  191. setSEIConfig(config) {
  192. return ZegoExpressEngineImpl._callMethod("setSEIConfig", { config });
  193. }
  194. sendSEI(data, channel = ZegoPublishChannel.Main) {
  195. return ZegoExpressEngineImpl._callMethod("sendSEI", { data, channel });
  196. }
  197. enableHardwareEncoder(enable) {
  198. return ZegoExpressEngineImpl._callMethod("enableHardwareEncoder", { enable });
  199. }
  200. setCapturePipelineScaleMode(mode) {
  201. return ZegoExpressEngineImpl._callMethod("setCapturePipelineScaleMode", { mode });
  202. }
  203. startPlayingStream(streamID, config) {
  204. return ZegoExpressEngineImpl._callMethod("startPlayingStream", { streamID, config });
  205. }
  206. stopPlayingStream(streamID) {
  207. return ZegoExpressEngineImpl._callMethod("stopPlayingStream", { streamID });
  208. }
  209. setPlayStreamDecryptionKey(key, streamID) {
  210. return ZegoExpressEngineImpl._callMethod("setPlayStreamDecryptionKey", { key, streamID });
  211. }
  212. takePlayStreamSnapshot(streamID) {
  213. return ZegoExpressEngineImpl._callMethod("takePlayStreamSnapshot", { streamID });
  214. }
  215. setPlayVolume(streamID, volume) {
  216. return ZegoExpressEngineImpl._callMethod("setPlayVolume", { streamID, volume });
  217. }
  218. setAllPlayStreamVolume(volume) {
  219. return ZegoExpressEngineImpl._callMethod("setAllPlayStreamVolume", { volume });
  220. }
  221. setPlayStreamVideoType(streamID, streamType) {
  222. return ZegoExpressEngineImpl._callMethod("setPlayStreamVideoType", { streamID, streamType });
  223. }
  224. setPlayStreamBufferIntervalRange(streamID, minBufferInterval, maxBufferInterval) {
  225. return ZegoExpressEngineImpl._callMethod("setPlayStreamBufferIntervalRange", { streamID, minBufferInterval, maxBufferInterval });
  226. }
  227. setPlayStreamFocusOn(streamID) {
  228. return ZegoExpressEngineImpl._callMethod("setPlayStreamFocusOn", { streamID });
  229. }
  230. mutePlayStreamAudio(streamID, mute) {
  231. return ZegoExpressEngineImpl._callMethod("mutePlayStreamAudio", { streamID, mute });
  232. }
  233. mutePlayStreamVideo(streamID, mute) {
  234. return ZegoExpressEngineImpl._callMethod("mutePlayStreamVideo", { streamID, mute });
  235. }
  236. muteAllPlayStreamAudio(mute) {
  237. return ZegoExpressEngineImpl._callMethod("muteAllPlayStreamAudio", { mute });
  238. }
  239. muteAllPlayStreamVideo(mute) {
  240. return ZegoExpressEngineImpl._callMethod("muteAllPlayStreamVideo", { mute });
  241. }
  242. enableHardwareDecoder(enable) {
  243. return ZegoExpressEngineImpl._callMethod("enableHardwareDecoder", { enable });
  244. }
  245. enableCheckPoc(enable) {
  246. return ZegoExpressEngineImpl._callMethod("enableCheckPoc", { enable });
  247. }
  248. startMixerTask(task) {
  249. return ZegoExpressEngineImpl._callMethod("startMixerTask", { task });
  250. }
  251. stopMixerTask(task) {
  252. return ZegoExpressEngineImpl._callMethod("stopMixerTask", { task });
  253. }
  254. startAutoMixerTask(task) {
  255. return ZegoExpressEngineImpl._callMethod("startAutoMixerTask", { task });
  256. }
  257. stopAutoMixerTask(task) {
  258. return ZegoExpressEngineImpl._callMethod("stopAutoMixerTask", { task });
  259. }
  260. muteMicrophone(mute) {
  261. return ZegoExpressEngineImpl._callMethod("muteMicrophone", { mute });
  262. }
  263. isMicrophoneMuted() {
  264. return ZegoExpressEngineImpl._callMethod("isMicrophoneMuted");
  265. }
  266. muteSpeaker(mute) {
  267. return ZegoExpressEngineImpl._callMethod("muteSpeaker", { mute });
  268. }
  269. isSpeakerMuted() {
  270. return ZegoExpressEngineImpl._callMethod("isSpeakerMuted");
  271. }
  272. enableAudioCaptureDevice(enable) {
  273. return ZegoExpressEngineImpl._callMethod("enableAudioCaptureDevice", { enable });
  274. }
  275. getAudioRouteType() {
  276. return ZegoExpressEngineImpl._callMethod("getAudioRouteType");
  277. }
  278. setAudioRouteToSpeaker(defaultToSpeaker) {
  279. return ZegoExpressEngineImpl._callMethod("setAudioRouteToSpeaker", { defaultToSpeaker });
  280. }
  281. enableCamera(enable, channel = ZegoPublishChannel.Main) {
  282. return ZegoExpressEngineImpl._callMethod("enableCamera", { enable, channel });
  283. }
  284. useFrontCamera(enable, channel = ZegoPublishChannel.Main) {
  285. return ZegoExpressEngineImpl._callMethod("useFrontCamera", { enable, channel });
  286. }
  287. setCameraZoomFactor(factor, channel = ZegoPublishChannel.Main) {
  288. return ZegoExpressEngineImpl._callMethod("setCameraZoomFactor", { factor, channel });
  289. }
  290. getCameraMaxZoomFactor(channel = ZegoPublishChannel.Main) {
  291. return ZegoExpressEngineImpl._callMethod("getCameraMaxZoomFactor", { channel });
  292. }
  293. startSoundLevelMonitor(config) {
  294. return ZegoExpressEngineImpl._callMethod("startSoundLevelMonitor", { config });
  295. }
  296. stopSoundLevelMonitor() {
  297. return ZegoExpressEngineImpl._callMethod("stopSoundLevelMonitor");
  298. }
  299. startAudioSpectrumMonitor(millisecond) {
  300. return ZegoExpressEngineImpl._callMethod("startAudioSpectrumMonitor", { millisecond });
  301. }
  302. stopAudioSpectrumMonitor() {
  303. return ZegoExpressEngineImpl._callMethod("stopAudioSpectrumMonitor");
  304. }
  305. enableHeadphoneMonitor(enable) {
  306. return ZegoExpressEngineImpl._callMethod("enableHeadphoneMonitor", { enable });
  307. }
  308. setHeadphoneMonitorVolume(volume) {
  309. return ZegoExpressEngineImpl._callMethod("setHeadphoneMonitorVolume", { volume });
  310. }
  311. enableAEC(enable) {
  312. return ZegoExpressEngineImpl._callMethod("enableAEC", { enable });
  313. }
  314. enableHeadphoneAEC(enable) {
  315. return ZegoExpressEngineImpl._callMethod("enableHeadphoneAEC", { enable });
  316. }
  317. setAECMode(mode) {
  318. return ZegoExpressEngineImpl._callMethod("setAECMode", { mode });
  319. }
  320. enableAGC(enable) {
  321. return ZegoExpressEngineImpl._callMethod("enableAGC", { enable });
  322. }
  323. enableANS(enable) {
  324. return ZegoExpressEngineImpl._callMethod("enableANS", { enable });
  325. }
  326. enableTransientANS(enable) {
  327. return ZegoExpressEngineImpl._callMethod("enableTransientANS", { enable });
  328. }
  329. setANSMode(mode) {
  330. return ZegoExpressEngineImpl._callMethod("setANSMode", { mode });
  331. }
  332. startEffectsEnv() {
  333. return ZegoExpressEngineImpl._callMethod("startEffectsEnv");
  334. }
  335. stopEffectsEnv() {
  336. return ZegoExpressEngineImpl._callMethod("stopEffectsEnv");
  337. }
  338. enableEffectsBeauty(enable) {
  339. return ZegoExpressEngineImpl._callMethod("enableEffectsBeauty", { enable });
  340. }
  341. setEffectsBeautyParam(param) {
  342. return ZegoExpressEngineImpl._callMethod("setEffectsBeautyParam", { param });
  343. }
  344. setAudioEqualizerGain(bandGain, bandIndex) {
  345. return ZegoExpressEngineImpl._callMethod("setAudioEqualizerGain", { bandGain, bandIndex });
  346. }
  347. setVoiceChangerPreset(preset) {
  348. return ZegoExpressEngineImpl._callMethod("setVoiceChangerPreset", { preset });
  349. }
  350. setVoiceChangerParam(param, audioChannel) {
  351. return ZegoExpressEngineImpl._callMethod("setVoiceChangerParam", { param, audioChannel });
  352. }
  353. setReverbPreset(preset) {
  354. return ZegoExpressEngineImpl._callMethod("setReverbPreset", { preset });
  355. }
  356. setReverbAdvancedParam(param) {
  357. return ZegoExpressEngineImpl._callMethod("setReverbAdvancedParam", { param });
  358. }
  359. setReverbEchoParam(param) {
  360. return ZegoExpressEngineImpl._callMethod("setReverbEchoParam", { param });
  361. }
  362. enableVirtualStereo(enable, angle) {
  363. return ZegoExpressEngineImpl._callMethod("enableVirtualStereo", { enable, angle });
  364. }
  365. sendBroadcastMessage(roomID, message) {
  366. return ZegoExpressEngineImpl._callMethod("sendBroadcastMessage", { roomID, message });
  367. }
  368. sendBarrageMessage(roomID, message) {
  369. return ZegoExpressEngineImpl._callMethod("sendBarrageMessage", { roomID, message });
  370. }
  371. sendCustomCommand(roomID, command, toUserList) {
  372. return ZegoExpressEngineImpl._callMethod("sendCustomCommand", { roomID, command, toUserList });
  373. }
  374. async createMediaPlayer() {
  375. const { playerID } = await ZegoExpressEngineImpl._callMethod("createMediaPlayer");
  376. if (playerID >= 0) {
  377. const mediaPlayer = new ZegoMediaPlayerImpl(playerID);
  378. ZegoExpressEngineImpl._mediaPlayerMap.set(playerID, mediaPlayer);
  379. return mediaPlayer;
  380. }
  381. return undefined;
  382. }
  383. async destroyMediaPlayer(mediaPlayer) {
  384. const index = mediaPlayer.getIndex();
  385. if (index >= 0) {
  386. await ZegoExpressEngineImpl._callMethod("destroyMediaPlayer", { index });
  387. ZegoExpressEngineImpl._mediaPlayerMap.delete(index);
  388. mediaPlayer.off("mediaPlayerStateUpdate");
  389. mediaPlayer.off("mediaPlayerNetworkEvent");
  390. mediaPlayer.off("mediaPlayerPlayingProgress");
  391. }
  392. return;
  393. }
  394. }
  395. ZegoExpressEngineImpl._listeners = new Map();
  396. ZegoExpressEngineImpl._mediaPlayerMap = new Map();
  397. export class ZegoMediaPlayerImpl {
  398. constructor(index) {
  399. this._index = index;
  400. }
  401. _callMethod(method, args) {
  402. return new Promise((resolve, _) => {
  403. ZegoExpressNativeEngineMoudle.callMethod({ method: method, args: { playerID: this._index, ...args } }, (res) => {
  404. resolve(res);
  405. });
  406. });
  407. }
  408. on(event, callback) {
  409. const native_listener = (res) => {
  410. const { data, idx } = res;
  411. if (idx >= 0) {
  412. const mediaPlayer = ZegoExpressEngineImpl._mediaPlayerMap.get(idx);
  413. // @ts-ignore
  414. callback(mediaPlayer, ...data);
  415. }
  416. };
  417. let map = ZegoExpressEngineImpl._listeners.get(event);
  418. if (map === undefined) {
  419. map = new Map();
  420. ZegoExpressEngineImpl._listeners.set(event, map);
  421. }
  422. map.set(callback, native_listener);
  423. ZegoEvent.addEventListener(Prefix + event, native_listener);
  424. ZegoExpressEngineImpl._listeners.set(event, map);
  425. }
  426. off(event, callback) {
  427. if (callback === undefined) {
  428. ZegoEvent.removeEventListener(Prefix + event);
  429. ZegoExpressEngineImpl._listeners.delete(event);
  430. }
  431. else {
  432. const map = ZegoExpressEngineImpl._listeners.get(event);
  433. if (map === undefined) {
  434. return;
  435. }
  436. ZegoEvent.removeEventListener(Prefix + event, map.get(callback));
  437. map.delete(callback);
  438. }
  439. }
  440. loadResource(path) {
  441. return this._callMethod("mediaPlayerLoadResource", { path });
  442. }
  443. start() {
  444. return this._callMethod("mediaPlayerStart");
  445. }
  446. stop() {
  447. return this._callMethod("mediaPlayerStop");
  448. }
  449. pause() {
  450. return this._callMethod("mediaPlayerPause");
  451. }
  452. resume() {
  453. return this._callMethod("mediaPlayerResume");
  454. }
  455. setPlayerView(playerID) {
  456. return this._callMethod("mediaPlayerSetPlayerView", { playerID });
  457. }
  458. seekTo(millisecond) {
  459. return this._callMethod("mediaPlayerSeekTo", { millisecond });
  460. }
  461. enableRepeat(enable) {
  462. return this._callMethod("mediaPlayerEnableRepeat", { enable });
  463. }
  464. enableAux(enable) {
  465. return this._callMethod("mediaPlayerEnableAux", { enable });
  466. }
  467. muteLocal(mute) {
  468. return this._callMethod("mediaPlayerMuteLocal", { mute });
  469. }
  470. setVolume(volume) {
  471. return this._callMethod("mediaPlayerSetVolume", { volume });
  472. }
  473. setPlayVolume(volume) {
  474. return this._callMethod("mediaPlayerSetPlayVolume", { volume });
  475. }
  476. setPublishVolume(volume) {
  477. return this._callMethod("mediaPlayerSetPublishVolume", { volume });
  478. }
  479. setProgressInterval(millisecond) {
  480. return this._callMethod("mediaPlayerSetProgressInterval", { millisecond });
  481. }
  482. setAudioTrackIndex(index) {
  483. return this._callMethod("mediaPlayerSetAudioTrackIndex", { index });
  484. }
  485. setVoiceChangerParam(param, audioChannel) {
  486. return this._callMethod("mediaPlayerSetVoiceChangerParam", { param, audioChannel });
  487. }
  488. takeSnapshot() {
  489. return this._callMethod("mediaPlayerTakeSnapshot");
  490. }
  491. setNetworkResourceMaxCache(time, size) {
  492. return this._callMethod("mediaPlayerSetNetworkResourceMaxCache", { time, size });
  493. }
  494. setNetworkBufferThreshold(threshold) {
  495. return this._callMethod("mediaPlayerSetNetworkBufferThreshold", { threshold });
  496. }
  497. enableAccurateSeek(enable, config) {
  498. return this._callMethod("mediaPlayerEnableAccurateSeek", { enable, config });
  499. }
  500. getNetworkResourceCache() {
  501. return this._callMethod("mediaPlayerGetNetworkResourceCache");
  502. }
  503. getPlayVolume() {
  504. return this._callMethod("mediaPlayerGetPlayVolume");
  505. }
  506. getPublishVolume() {
  507. return this._callMethod("mediaPlayerGetPublishVolume");
  508. }
  509. getTotalDuration() {
  510. return this._callMethod("mediaPlayerGetTotalDuration");
  511. }
  512. getCurrentProgress() {
  513. return this._callMethod("mediaPlayerGetCurrentProgress");
  514. }
  515. getAudioTrackCount() {
  516. return this._callMethod("mediaPlayerGetAudioTrackCount");
  517. }
  518. getCurrentState() {
  519. return this._callMethod("mediaPlayerGetCurrentState");
  520. }
  521. getIndex() {
  522. return this._index;
  523. }
  524. }