diff options
author | Werner Dittmann <wernerd@java.net> | 2009-01-08 18:50:59 +0000 |
---|---|---|
committer | Werner Dittmann <wernerd@java.net> | 2009-01-08 18:50:59 +0000 |
commit | 4a2b1e895681af32a17cb47963ce4f3a61dda971 (patch) | |
tree | 52b72c19a5461ff5a37ef2f4df83ab0686559ef0 /src/net/java/sip/communicator/impl/audionotifier | |
parent | 920b9ccf7967181f46f5b26c85a3dbd0426fe4f3 (diff) | |
download | jitsi-4a2b1e895681af32a17cb47963ce4f3a61dda971.zip jitsi-4a2b1e895681af32a17cb47963ce4f3a61dda971.tar.gz jitsi-4a2b1e895681af32a17cb47963ce4f3a61dda971.tar.bz2 |
When looping to repeat an audio clip: first stop the clip, then play again.
Testing with openJDK has a problem if the clip was not stopped before playing
again. The patch was tested with Sun Java 1.6 as well and works.
Diffstat (limited to 'src/net/java/sip/communicator/impl/audionotifier')
-rw-r--r-- | src/net/java/sip/communicator/impl/audionotifier/SCAudioClipImpl.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/net/java/sip/communicator/impl/audionotifier/SCAudioClipImpl.java b/src/net/java/sip/communicator/impl/audionotifier/SCAudioClipImpl.java index bada5d6..87ddc8e 100644 --- a/src/net/java/sip/communicator/impl/audionotifier/SCAudioClipImpl.java +++ b/src/net/java/sip/communicator/impl/audionotifier/SCAudioClipImpl.java @@ -24,7 +24,7 @@ import net.java.sip.communicator.service.audionotifier.*; */ public class SCAudioClipImpl implements SCAudioClip { - private static Constructor acConstructor = null; + private static Constructor<AudioClip> acConstructor = null; private Timer playAudioTimer = new Timer(1000, null); @@ -145,16 +145,17 @@ public class SCAudioClipImpl implements SCAudioClip { try { - acConstructor = (Constructor)AccessController - .doPrivileged(new PrivilegedExceptionAction() + acConstructor = AccessController + .doPrivileged(new PrivilegedExceptionAction<Constructor<AudioClip>>() { - public Object run() + @SuppressWarnings("unchecked") + public Constructor<AudioClip> run() throws NoSuchMethodException, SecurityException, ClassNotFoundException { - Class class1 = null; + Class<?> class1 = null; try { class1 = Class.forName( @@ -166,9 +167,9 @@ public class SCAudioClipImpl implements SCAudioClip class1 = Class.forName( "sun.audio.SunAudioClip", true, null); } - Class aclass[] = new Class[1]; + Class<?> aclass[] = new Class[1]; aclass[0] = Class.forName("java.io.InputStream"); - return class1.getConstructor(aclass); + return (Constructor<AudioClip>) class1.getConstructor(aclass); } }); } @@ -184,7 +185,7 @@ public class SCAudioClipImpl implements SCAudioClip Object aobj[] = { inputstream }; - audioClip = (AudioClip)acConstructor.newInstance(aobj); + audioClip = acConstructor.newInstance(aobj); } catch(Exception exception) { @@ -206,7 +207,8 @@ public class SCAudioClipImpl implements SCAudioClip } public void actionPerformed(ActionEvent e) { - this.audio.play(); + audio.stop(); + audio.play(); } } |