aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/audionotifier
diff options
context:
space:
mode:
authorWerner Dittmann <wernerd@java.net>2009-01-08 18:50:59 +0000
committerWerner Dittmann <wernerd@java.net>2009-01-08 18:50:59 +0000
commit4a2b1e895681af32a17cb47963ce4f3a61dda971 (patch)
tree52b72c19a5461ff5a37ef2f4df83ab0686559ef0 /src/net/java/sip/communicator/impl/audionotifier
parent920b9ccf7967181f46f5b26c85a3dbd0426fe4f3 (diff)
downloadjitsi-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.java20
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();
}
}