1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.host.html;
16
17 import org.htmlunit.corejs.javascript.NativePromise;
18 import org.htmlunit.html.HtmlMedia;
19 import org.htmlunit.javascript.configuration.JsxClass;
20 import org.htmlunit.javascript.configuration.JsxConstant;
21 import org.htmlunit.javascript.configuration.JsxConstructor;
22 import org.htmlunit.javascript.configuration.JsxFunction;
23 import org.htmlunit.javascript.configuration.JsxGetter;
24 import org.htmlunit.javascript.configuration.JsxSetter;
25 import org.htmlunit.javascript.host.dom.DOMException;
26 import org.htmlunit.javascript.host.dom.Node;
27
28
29
30
31
32
33
34 @JsxClass
35 public class HTMLMediaElement extends HTMLElement {
36
37
38
39
40 @JsxConstant
41 public static final int HAVE_NOTHING = 0;
42
43
44
45
46
47 @JsxConstant
48 public static final int HAVE_METADATA = 1;
49
50
51
52
53 @JsxConstant
54 public static final int HAVE_CURRENT_DATA = 2;
55
56
57
58
59
60 @JsxConstant
61 public static final int HAVE_FUTURE_DATA = 3;
62
63
64
65
66
67 @JsxConstant
68 public static final int HAVE_ENOUGH_DATA = 4;
69
70
71 @JsxConstant
72 public static final int NETWORK_EMPTY = 0;
73
74
75 @JsxConstant
76 public static final int NETWORK_IDLE = 1;
77
78
79 @JsxConstant
80 public static final int NETWORK_LOADING = 2;
81
82
83 @JsxConstant
84 public static final int NETWORK_NO_SOURCE = 3;
85
86
87
88
89 @Override
90 @JsxConstructor
91 public void jsConstructor() {
92 super.jsConstructor();
93 }
94
95
96
97
98
99
100 @JsxFunction
101 public String canPlayType(final String type) {
102 final HtmlMedia element = (HtmlMedia) getDomNodeOrNull();
103 if (element == null) {
104 return "maybe";
105 }
106 return element.canPlayType(type);
107 }
108
109
110
111
112
113
114
115 @JsxFunction
116 public NativePromise play() {
117 return setupRejectedPromise(() ->
118 new DOMException("HtmlUnit does not support media play().", DOMException.NOT_FOUND_ERR));
119 }
120
121
122
123
124 @JsxFunction
125 public void pause() {
126
127 }
128
129
130
131
132
133
134 @JsxFunction
135 public void load() {
136
137 }
138
139
140
141
142
143 @JsxGetter
144 @Override
145 public int getNodeType() {
146 final HtmlMedia element = (HtmlMedia) getDomNodeOrNull();
147 if (element == null) {
148 return Node.ELEMENT_NODE;
149 }
150 return element.getNodeType();
151 }
152
153
154
155
156 @JsxGetter
157 @Override
158 public String getNodeName() {
159 return getNodeNameCustomize();
160 }
161
162
163
164
165
166
167 protected String getNodeNameCustomize() {
168 final HtmlMedia element = (HtmlMedia) getDomNodeOrNull();
169 if (element == null) {
170 return "MEDIA";
171 }
172 return element.getNodeName();
173 }
174
175
176
177
178
179 @JsxGetter
180 public String getSrc() {
181 final HtmlMedia media = (HtmlMedia) getDomNodeOrDie();
182 return media.getSrc();
183 }
184
185
186
187
188
189 @JsxSetter
190 public void setSrc(final String src) {
191 final HtmlMedia media = (HtmlMedia) getDomNodeOrDie();
192 media.setSrc(src);
193 }
194
195
196
197
198
199
200
201
202 @JsxGetter
203 public String getCurrentSrc() {
204 final HtmlMedia media = (HtmlMedia) getDomNodeOrDie();
205 return media.getCurrentSrc();
206 }
207 }