Hello there good poeple, I need some help.
I’m writing a music player which streams music from the web. If I pres the play button before the music is done buffering I want it to wait.
I tried doing something like this:
Object mutex = new Object();
public void main() {
startStreaming();
mutex.notify();
}
private void onClickPlayButton() {
mutex.wait();
}
The problem is that is the playButton is not pressed the mutex.notify() if throws a “llegalMonitorStateException“. How do you normally solve problems like this?
EDIT To make clear. My question is: How do I make the button wait for the “startStreamning” method to finish?
According to the JavaDoc,
In order to call
mutex.wait()ormutex.notify(), the calling thread must own a lock on object mutex.This exception is thrown if you call it without a preceding
synchronized (mutex) { }Check out the nice animation of
waitandnotifyin this link : How do wait and notify really work?