Révision 3417
TXM/trunk/org.txm.backtomedia.rcp/src/org/txm/backtomedia/editors/player/HTMLPlayer.java (revision 3417) | ||
---|---|---|
8 | 8 |
import org.eclipse.swt.browser.Browser; |
9 | 9 |
import org.eclipse.swt.browser.ProgressEvent; |
10 | 10 |
import org.eclipse.swt.browser.ProgressListener; |
11 |
import org.eclipse.swt.events.KeyEvent; |
|
12 |
import org.eclipse.swt.events.KeyListener; |
|
11 | 13 |
import org.eclipse.swt.events.SelectionEvent; |
12 | 14 |
import org.eclipse.swt.events.SelectionListener; |
13 | 15 |
import org.eclipse.swt.layout.GridData; |
... | ... | |
15 | 17 |
import org.eclipse.swt.widgets.Button; |
16 | 18 |
import org.eclipse.swt.widgets.Composite; |
17 | 19 |
import org.eclipse.swt.widgets.Label; |
20 |
import org.eclipse.swt.widgets.Menu; |
|
21 |
import org.eclipse.swt.widgets.MenuItem; |
|
18 | 22 |
import org.eclipse.swt.widgets.Scale; |
19 | 23 |
import org.txm.backtomedia.commands.function.OpenMediaPlayer; |
20 | 24 |
import org.txm.backtomedia.commands.function.SimpleFileDialog; |
... | ... | |
46 | 50 |
|
47 | 51 |
browser = new Browser(this, SWT.NONE); |
48 | 52 |
browser.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); |
49 |
browser.setText("<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"></head><body><video id=\"video\" width=\"100%\" height=\"100%\" controls></video></body></html>");
|
|
53 |
browser.setText("<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"></head><body><video style=\"height:100%;\"id=\"video\" controls></video></body></html>");
|
|
50 | 54 |
//browser.setText("<video id=\"video\" width=\"100%\" height=\"100%\" controls><source id=\"source\" src=\"\"></source></video>"); |
51 | 55 |
|
52 | 56 |
browser.addProgressListener(new ProgressListener() { |
... | ... | |
69 | 73 |
public void changed(ProgressEvent event) { } |
70 | 74 |
}); |
71 | 75 |
|
76 |
Menu menu = new Menu(browser); |
|
77 |
MenuItem playStopItem = new MenuItem(menu, SWT.PUSH); |
|
78 |
playStopItem.setText("Play"); |
|
79 |
playStopItem.addSelectionListener(new SelectionListener() { |
|
80 |
|
|
81 |
@Override |
|
82 |
public void widgetSelected(SelectionEvent e) { |
|
83 |
resume(); |
|
84 |
} |
|
85 |
|
|
86 |
@Override |
|
87 |
public void widgetDefaultSelected(SelectionEvent e) { } |
|
88 |
}); |
|
89 |
MenuItem pauseItem = new MenuItem(menu, SWT.PUSH); |
|
90 |
pauseItem.setText("Pause"); |
|
91 |
pauseItem.addSelectionListener(new SelectionListener() { |
|
92 |
|
|
93 |
@Override |
|
94 |
public void widgetSelected(SelectionEvent e) { |
|
95 |
pause(); |
|
96 |
} |
|
97 |
|
|
98 |
@Override |
|
99 |
public void widgetDefaultSelected(SelectionEvent e) { } |
|
100 |
}); |
|
101 |
|
|
102 |
browser.setMenu(menu); |
|
103 |
|
|
72 | 104 |
GLComposite controls = new GLComposite(this, SWT.NONE, "controls"); |
73 | 105 |
controls.getLayout().numColumns = 20; |
74 | 106 |
controls.getLayout().horizontalSpacing = 2; |
... | ... | |
185 | 217 |
// gdata.minimumWidth = gdata.widthHint = 150; |
186 | 218 |
// volumneSpinner.setLayoutData(gdata); |
187 | 219 |
|
220 |
rateLabel = new Label(controls, SWT.NONE); |
|
221 |
rateLabel.setText("Rate (1.0)"); |
|
188 | 222 |
|
223 |
Scale rateSpinner = new Scale(controls, SWT.NONE); |
|
224 |
rateSpinner.setMinimum(10); |
|
225 |
rateSpinner.setMaximum(300); |
|
226 |
rateSpinner.setSelection(100); |
|
227 |
rateSpinner.addSelectionListener(new SelectionListener() { |
|
228 |
|
|
229 |
@Override |
|
230 |
public void widgetSelected(SelectionEvent e) { |
|
231 |
setRate(((float)rateSpinner.getSelection())/100.0f); |
|
232 |
} |
|
233 |
|
|
234 |
@Override |
|
235 |
public void widgetDefaultSelected(SelectionEvent e) { } |
|
236 |
}); |
|
237 |
GridData gdata2 = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
|
238 |
gdata2.minimumWidth = gdata2.widthHint = 150; |
|
239 |
rateSpinner.setLayoutData(gdata2); |
|
189 | 240 |
} |
190 | 241 |
|
191 |
rateLabel = new Label(controls, SWT.NONE); |
|
192 |
rateLabel.setText("Rate (1.0)"); |
|
193 | 242 |
|
194 |
Scale rateSpinner = new Scale(controls, SWT.NONE); |
|
195 |
rateSpinner.setMinimum(10); |
|
196 |
rateSpinner.setMaximum(300); |
|
197 |
rateSpinner.setSelection(100); |
|
198 |
rateSpinner.addSelectionListener(new SelectionListener() { |
|
199 |
|
|
200 |
@Override |
|
201 |
public void widgetSelected(SelectionEvent e) { |
|
202 |
setRate(((float)rateSpinner.getSelection())/100.0f); |
|
203 |
} |
|
204 |
|
|
205 |
@Override |
|
206 |
public void widgetDefaultSelected(SelectionEvent e) { } |
|
207 |
}); |
|
208 |
GridData gdata2 = new GridData(GridData.CENTER, GridData.CENTER, false, false); |
|
209 |
gdata2.minimumWidth = gdata2.widthHint = 150; |
|
210 |
rateSpinner.setLayoutData(gdata2); |
|
211 | 243 |
|
212 | 244 |
// new Label(controls, SWT.NONE).setText("Progression"); |
213 | 245 |
// |
... | ... | |
350 | 382 |
|
351 | 383 |
} |
352 | 384 |
|
385 |
public void togglePlayPause() { |
|
386 |
if (isPlaying()) { |
|
387 |
pause(); |
|
388 |
} else { |
|
389 |
resume(); |
|
390 |
} |
|
391 |
} |
|
392 |
|
|
353 | 393 |
@Override |
354 | 394 |
public boolean isMediaLoaded() { |
355 | 395 |
|
... | ... | |
422 | 462 |
|
423 | 463 |
@Override |
424 | 464 |
public boolean isPlaying() { |
425 |
Object o = browser.evaluate("return !document.getElementById('video').played;");
|
|
465 |
Object o = browser.evaluate("return !document.getElementById('video').playing;");
|
|
426 | 466 |
if (o == null) return false; |
427 | 467 |
if (o instanceof Boolean) { |
428 | 468 |
return (Boolean)o; |
Formats disponibles : Unified diff