javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5AudioEnvironment.java
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.apidesign.bck2brwsr.htmlpage;
7 import net.java.html.sound.AudioClip;
8 import org.apidesign.bck2brwsr.core.JavaScriptBody;
9 import org.apidesign.html.sound.spi.AudioEnvironment;
15 public class HTML5AudioEnvironment implements AudioEnvironment {
18 public Object play(AudioClip clip, Object nativeClip) {
19 if (nativeClip == null) {
20 nativeClip = createNativeCLip(clip.getSource());
27 public Object pause(AudioClip aThis, Object nativeClip) {
28 if (nativeClip == null) {
29 return null; // only can pause a cached clip
31 pauseImpl(nativeClip);
36 public Object stop(AudioClip aThis, Object nativeClip) {
37 if (nativeClip == null) {
38 return null; // only can stop a cached clip
45 public Object setVolume(AudioClip aThis, int volume, Object cached) {
46 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
50 public Object playFrom(AudioClip clip, int seconds, Object nativeClip) {
51 if (nativeClip == null) {
52 nativeClip = createNativeCLip(clip.getSource());
54 playFromImpl(nativeClip);
58 @JavaScriptBody(args = "nativeClip", body = "nativeClip.play()")
59 private native void playImpl(Object nativeClip);
61 @JavaScriptBody(args = "nativeClip", body = "nativeClip.pause(), nativeClip.currentTime=0;")
62 private void stopImpl(Object nativeClip) {
65 @JavaScriptBody(args = "nativeClip", body = "nativeClip.pause();")
66 private void pauseImpl(Object nativeClip) {
69 @JavaScriptBody(args = "nativeClip", body = "nativeClip.currentTime=0; nativeClip.play();")
70 private void playFromImpl(Object nativeClip) {
73 @JavaScriptBody(args = {"src"}, body = "var clip = new Audio();clip.src=src; return clip;")
74 private native Object createNativeCLip(String src);