NodePlayer.d.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. declare class NodePlayer {
  2. /**
  3. * 是否开启控制台调试信息输出
  4. * @param enable 开关
  5. */
  6. static debug(enable: boolean): void;
  7. /**
  8. * 回调形式的wasm异步加载
  9. * @param cb 回调函数
  10. */
  11. static load(cb: () => void): void;
  12. /**
  13. * async/await形式的wasm异步加载
  14. */
  15. static asyncLoad(): void;
  16. /**
  17. * 自动测试浏览器是否支持MSE硬件解码播放
  18. * 如不支持,仍然使用软解码。
  19. * 紧随 new 后调用,不调用则只使用软解。
  20. * 注意:使用MSE后不支持累积延迟消除
  21. */
  22. useMSE(): void;
  23. /**
  24. * 是否开启屏幕常亮
  25. * 在手机浏览器上,canvas标签渲染视频并不会像video标签那样保持屏幕常亮
  26. * 如果需要该功能, 可以调用此方法, 会有少量cpu消耗, pc浏览器不会执行
  27. */
  28. setKeepScreenOn(): void;
  29. /**
  30. * 绑定视图id
  31. * @param viewId canvas视图id
  32. */
  33. setView(viewId: string): void;
  34. /**
  35. * 设置视频缩放模式
  36. * 当视频分辨率比例与canvas显示区域比例不同时,缩放效果不同:
  37. * 0 视频画面完全填充canvas区域,画面会被拉伸
  38. * 1 视频画面做等比缩放后,对齐canvas区域,画面不被拉伸,但有黑边
  39. * 2 视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全
  40. * 注意:只在软解时有效
  41. * @param mode 缩放模式
  42. */
  43. setScaleMode(mode: number): void;
  44. /**
  45. * 设置最大缓冲时长,单位毫秒
  46. * 注意:只在软解时有效
  47. * @param bufferTime
  48. */
  49. setBufferTime(bufferTime: number): void;
  50. /**
  51. * 设置音量大小,取值0.0 — 1.0
  52. * 当为0.0时,完全无声
  53. * 当为1.0时,最大音量,默认值
  54. * @param volume 音量大小,浮点类型
  55. */
  56. setVolume(volume: number): void;
  57. /**
  58. * 设置超时时长, 单位秒,只在软解时有效
  59. * 在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件
  60. * @param time 超时时间, 单位秒
  61. */
  62. setTimeout(time: number): void;
  63. /**
  64. * 重置视图大小,将自动改变标签的高宽和css高宽
  65. * @param width 新视频区域宽
  66. * @param height 新视频区域高
  67. */
  68. resizeView(width: number, height: number): void;
  69. /**
  70. * 通知播放器画布尺寸改变,计算调整渲染尺寸
  71. * 也可以用于旋转画布
  72. * @param rotate 旋转角度
  73. * 可选0-默认,90,270
  74. */
  75. onResize(rotate: number): void;
  76. /**
  77. * 截图
  78. * @param filename 截图后的文件名
  79. * @param format 截图的格式,可选png或jpeg
  80. * @param quality 可选参数,当格式是jpeg时,压缩质量,取值0.0 ~ 1.0
  81. */
  82. screenshot(filename: string, format: string, quality: number): void;
  83. /**
  84. * 开始播放
  85. * @param url http-flv,ws-flv 直播地址
  86. */
  87. start(url: string): void;
  88. /**
  89. * 停止播放
  90. */
  91. stop(): void;
  92. /**
  93. * 全屏播放,iOS不支持
  94. */
  95. fullscreen(): void;
  96. /**
  97. * 恢复音频
  98. */
  99. audioResume(): void;
  100. /**
  101. * 清理画布为黑色背景
  102. * 用于canvas重用进行多个流切换播放时,将上一个画面清理
  103. * 避免后一个视频播放之前出现前一个视频最后一个画面
  104. * 在stop后调用
  105. */
  106. clearView(): void;
  107. /**
  108. * 释放播放器
  109. * @param loseContext 是否完全释放canvas上的WebGL context,默认不传为false。
  110. * loseContext 用于通过代码多次创建canvas ( document.createElement('canvas') ),
  111. * 可以传true来释放相应的GL context 避免出现
  112. * Too many active WebGL contexts. Oldest context will be lost.
  113. * 这样的警告
  114. */
  115. release(loseContext: boolean): void;
  116. /**
  117. * 绑定事件监听器
  118. * @param event 事件
  119. * @param handler 处理器
  120. *
  121. * 'start'事件 当连接成功并收到数据
  122. * 'stop' 事件 当本地stop或远端断开连接
  123. * 'error'事件 当连接错误或播放中发生错误,error 一个参数
  124. * 'videoInfo'事件 当解析出视频信息时回调,width,height,codec 三个参数
  125. * ‘videoSei’ 事件 当解析出sei信息时回调,sei 一个参数
  126. * ‘videoFrame’ 事件 当渲染一帧视频时回调,pts,dts 两个参数
  127. * ’audioInfo‘事件 当解析出音频信息时回调,samplerate,channels,codec 三个参数
  128. * ’stats‘事件 每秒回调一次,包含当前缓冲区时长,fps,音视频码率(bit),stats(对象)一个参数
  129. * 'buffer'事件 empty,buffering,full 三种状态, state一个参数
  130. * 'timeout'事件 当设定的超时时间内无数据返回,则回调
  131. */
  132. on(event: string, listener: (...args: any[]) => void): void;
  133. }