mirror of
https://github.com/jneug/zeichenmaschine.git
synced 2026-04-14 06:33:34 +02:00
Audio-Methoden synchronisiert
This commit is contained in:
@@ -122,7 +122,7 @@ public class Music implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void play() {
|
public synchronized void play() {
|
||||||
if( openLine() ) {
|
if( openLine() ) {
|
||||||
TaskRunner.run(new Runnable() {
|
TaskRunner.run(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@@ -147,7 +147,7 @@ public class Music implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void loop() {
|
public synchronized void loop() {
|
||||||
looping = true;
|
looping = true;
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
@@ -156,7 +156,7 @@ public class Music implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public synchronized void stop() {
|
||||||
playing = false;
|
playing = false;
|
||||||
looping = false;
|
looping = false;
|
||||||
dispose();
|
dispose();
|
||||||
@@ -166,7 +166,7 @@ public class Music implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void dispose() {
|
public synchronized void dispose() {
|
||||||
if( audioLine != null ) {
|
if( audioLine != null ) {
|
||||||
if( audioLine.isRunning() ) {
|
if( audioLine.isRunning() ) {
|
||||||
playing = false;
|
playing = false;
|
||||||
@@ -175,7 +175,6 @@ public class Music implements Audio {
|
|||||||
if( audioLine.isOpen() ) {
|
if( audioLine.isOpen() ) {
|
||||||
audioLine.drain();
|
audioLine.drain();
|
||||||
audioLine.close();
|
audioLine.close();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -189,7 +188,7 @@ public class Music implements Audio {
|
|||||||
audioStream = null;
|
audioStream = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stream() {
|
private synchronized void stream() {
|
||||||
audioLine.start();
|
audioLine.start();
|
||||||
playing = true;
|
playing = true;
|
||||||
if( eventDispatcher != null ) {
|
if( eventDispatcher != null ) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package schule.ngb.zm.media;
|
package schule.ngb.zm.media;
|
||||||
|
|
||||||
import schule.ngb.zm.util.Log;
|
import schule.ngb.zm.util.Log;
|
||||||
import schule.ngb.zm.util.io.ResourceStreamProvider;
|
|
||||||
import schule.ngb.zm.util.Validator;
|
import schule.ngb.zm.util.Validator;
|
||||||
|
import schule.ngb.zm.util.io.ResourceStreamProvider;
|
||||||
|
|
||||||
import javax.sound.sampled.*;
|
import javax.sound.sampled.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -125,7 +125,7 @@ public class Sound implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public synchronized void stop() {
|
||||||
looping = false;
|
looping = false;
|
||||||
if( audioClip.isRunning() ) {
|
if( audioClip.isRunning() ) {
|
||||||
audioClip.stop();
|
audioClip.stop();
|
||||||
@@ -137,7 +137,7 @@ public class Sound implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void play() {
|
public synchronized void play() {
|
||||||
if( this.openClip() ) {
|
if( this.openClip() ) {
|
||||||
audioClip.start();
|
audioClip.start();
|
||||||
playing = true;
|
playing = true;
|
||||||
@@ -176,7 +176,7 @@ public class Sound implements Audio {
|
|||||||
* allerdings wird der aufrufende Thread nicht blockiert und
|
* allerdings wird der aufrufende Thread nicht blockiert und
|
||||||
* {@link #dispose()} automatisch am Ende aufgerufen.
|
* {@link #dispose()} automatisch am Ende aufgerufen.
|
||||||
*/
|
*/
|
||||||
public void playOnce() {
|
public synchronized void playOnce() {
|
||||||
disposeAfterPlay = true;
|
disposeAfterPlay = true;
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
@@ -200,16 +200,17 @@ public class Sound implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void loop() {
|
public synchronized void loop() {
|
||||||
loop(Clip.LOOP_CONTINUOUSLY);
|
loop(Clip.LOOP_CONTINUOUSLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wiederholt den Sound die angegebene Anzahl an Wiederholungen ab und stoppt
|
* Wiederholt den Sound die angegebene Anzahl an Wiederholungen ab und
|
||||||
* die Wiedergabe dann.
|
* stoppt die Wiedergabe dann.
|
||||||
|
*
|
||||||
* @param count Anzahl der Wiederholungen.
|
* @param count Anzahl der Wiederholungen.
|
||||||
*/
|
*/
|
||||||
public void loop( int count ) {
|
public synchronized void loop( int count ) {
|
||||||
if( count > 0 ) {
|
if( count > 0 ) {
|
||||||
int loopCount = count;
|
int loopCount = count;
|
||||||
if( loopCount != Clip.LOOP_CONTINUOUSLY ) {
|
if( loopCount != Clip.LOOP_CONTINUOUSLY ) {
|
||||||
@@ -231,7 +232,7 @@ public class Sound implements Audio {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void dispose() {
|
public synchronized void dispose() {
|
||||||
if( audioClip != null ) {
|
if( audioClip != null ) {
|
||||||
if( audioClip.isRunning() ) {
|
if( audioClip.isRunning() ) {
|
||||||
audioClip.stop();
|
audioClip.stop();
|
||||||
|
|||||||
Reference in New Issue
Block a user