版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

250 строки
5.5 KiB

  1. import ErrorEvent from 'src/event/events/ErrorEvent';
  2. import Event from '../../event/Event';
  3. import HTMLElement from '../html-element/HTMLElement';
  4. import IHTMLMediaElement, { IMediaError } from './IHTMLMediaElement';
  5. /**
  6. * HTML Media Element.
  7. *
  8. * Reference:
  9. * https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.
  10. *
  11. */
  12. export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaElement {
  13. #private;
  14. readonly buffered: object;
  15. readonly duration: number;
  16. readonly error: IMediaError;
  17. readonly ended = false;
  18. readonly networkState = 0;
  19. readonly readyState = 0;
  20. readonly textTracks: any[];
  21. readonly videoTracks: any[];
  22. readonly seeking = false;
  23. readonly seekable: object;
  24. readonly played: object;
  25. onabort: (event: Event) => void | null;
  26. oncanplay: (event: Event) => void | null;
  27. oncanplaythrough: (event: Event) => void | null;
  28. ondurationchange: (event: Event) => void | null;
  29. onemptied: (event: Event) => void | null;
  30. onended: (event: Event) => void | null;
  31. onerror: (event: ErrorEvent) => void | null;
  32. onloadeddata: (event: Event) => void | null;
  33. onloadedmetadata: (event: Event) => void | null;
  34. onloadstart: (event: Event) => void | null;
  35. onpause: (event: Event) => void | null;
  36. onplay: (event: Event) => void | null;
  37. onplaying: (event: Event) => void | null;
  38. onprogress: (event: Event) => void | null;
  39. onratechange: (event: Event) => void | null;
  40. onresize: (event: Event) => void | null;
  41. onseeked: (event: Event) => void | null;
  42. onseeking: (event: Event) => void | null;
  43. onstalled: (event: Event) => void | null;
  44. onsuspend: (event: Event) => void | null;
  45. ontimeupdate: (event: Event) => void | null;
  46. onvolumechange: (event: Event) => void | null;
  47. onwaiting: (event: Event) => void | null;
  48. /**
  49. * Returns autoplay.
  50. *
  51. * @returns Autoplay.
  52. */
  53. get autoplay(): boolean;
  54. /**
  55. * Sets autoplay.
  56. *
  57. * @param autoplay Autoplay.
  58. */
  59. set autoplay(autoplay: boolean);
  60. /**
  61. * Returns controls.
  62. *
  63. * @returns Controls.
  64. */
  65. get controls(): boolean;
  66. /**
  67. * Sets controls.
  68. *
  69. * @param controls Controls.
  70. */
  71. set controls(controls: boolean);
  72. /**
  73. * Returns loop.
  74. *
  75. * @returns Loop.
  76. */
  77. get loop(): boolean;
  78. /**
  79. * Sets loop.
  80. *
  81. * @param loop Loop.
  82. */
  83. set loop(loop: boolean);
  84. /**
  85. * Returns muted.
  86. *
  87. * @returns Muted.
  88. */
  89. get muted(): boolean;
  90. /**
  91. * Sets muted.
  92. *
  93. * @param muted Muted.
  94. */
  95. set muted(muted: boolean);
  96. /**
  97. * Returns defaultMuted.
  98. *
  99. * @returns DefaultMuted.
  100. */
  101. get defaultMuted(): boolean;
  102. /**
  103. * Sets defaultMuted.
  104. *
  105. * @param defaultMuted DefaultMuted.
  106. */
  107. set defaultMuted(defaultMuted: boolean);
  108. /**
  109. * Returns src.
  110. *
  111. * @returns Src.
  112. */
  113. get src(): string;
  114. /**
  115. * Sets src.
  116. *
  117. * @param src Src.
  118. */
  119. set src(src: string);
  120. /**
  121. * Returns currentSrc.
  122. *
  123. * @returns CurrentrSrc.
  124. */
  125. get currentSrc(): string;
  126. /**
  127. * Returns volume.
  128. *
  129. * @returns Volume.
  130. */
  131. get volume(): number;
  132. /**
  133. * Sets volume.
  134. *
  135. * @param volume Volume.
  136. */
  137. set volume(volume: number | string);
  138. /**
  139. * Returns crossOrigin.
  140. *
  141. * @returns CrossOrigin.
  142. */
  143. get crossOrigin(): string;
  144. /**
  145. * Sets crossOrigin.
  146. *
  147. * @param crossOrigin CrossOrigin.
  148. */
  149. set crossOrigin(crossOrigin: string | null);
  150. /**
  151. * Returns currentTime.
  152. *
  153. * @returns CurrentTime.
  154. */
  155. get currentTime(): number;
  156. /**
  157. * Sets currentTime.
  158. *
  159. * @param currentTime CurrentTime.
  160. */
  161. set currentTime(currentTime: number | string);
  162. /**
  163. * Returns playbackRate.
  164. *
  165. * @returns PlaybackRate.
  166. */
  167. get playbackRate(): number;
  168. /**
  169. * Sets playbackRate.
  170. *
  171. * @param playbackRate PlaybackRate.
  172. */
  173. set playbackRate(playbackRate: number | string);
  174. /**
  175. * Returns defaultPlaybackRate.
  176. *
  177. * @returns DefaultPlaybackRate.
  178. */
  179. get defaultPlaybackRate(): number;
  180. /**
  181. * Sets defaultPlaybackRate.
  182. *
  183. * @param defaultPlaybackRate DefaultPlaybackRate.
  184. */
  185. set defaultPlaybackRate(defaultPlaybackRate: number | string);
  186. /**
  187. * Returns preservesPitch.
  188. *
  189. * @returns PlaybackRate.
  190. */
  191. get preservesPitch(): boolean;
  192. /**
  193. * Sets preservesPitch.
  194. *
  195. * @param preservesPitch PreservesPitch.
  196. */
  197. set preservesPitch(preservesPitch: boolean);
  198. /**
  199. * Returns preload.
  200. *
  201. * @returns preload.
  202. */
  203. get preload(): string;
  204. /**
  205. * Sets preload.
  206. *
  207. * @param preload preload.
  208. */
  209. set preload(preload: string);
  210. /**
  211. * Returns paused.
  212. *
  213. * @returns Paused.
  214. */
  215. get paused(): boolean;
  216. /**
  217. * Pause played media.
  218. */
  219. pause(): void;
  220. /**
  221. * Start playing media.
  222. */
  223. play(): Promise<void>;
  224. /**
  225. *
  226. * @param _type
  227. */
  228. canPlayType(_type: string): string;
  229. /**
  230. * Load media.
  231. */
  232. load(): void;
  233. /**
  234. *
  235. */
  236. captureStream(): object;
  237. /**
  238. * Clones a node.
  239. *
  240. * @override
  241. * @param [deep=false] "true" to clone deep.
  242. * @returns Cloned node.
  243. */
  244. /**
  245. *
  246. * @param deep
  247. */
  248. cloneNode(deep?: boolean): IHTMLMediaElement;
  249. }