v0.6.4a: music is now prepared synchronously

This commit is contained in:
Evan Debenham 2018-04-07 19:20:35 -04:00
parent a8351e48fc
commit f935092871

View File

@ -31,7 +31,7 @@ import android.telephony.TelephonyManager;
import com.watabou.noosa.Game; import com.watabou.noosa.Game;
public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener { public enum Music {
INSTANCE; INSTANCE;
@ -65,10 +65,11 @@ public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnError
MediaPlayer mp = new MediaPlayer(); MediaPlayer mp = new MediaPlayer();
mp.setAudioStreamType( AudioManager.STREAM_MUSIC ); mp.setAudioStreamType( AudioManager.STREAM_MUSIC );
mp.setDataSource( afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength() ); mp.setDataSource( afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength() );
mp.setOnPreparedListener( this ); mp.prepare();
mp.setOnErrorListener( this ); player = mp;
mp.prepareAsync(); player.start();
afd.close(); player.setLooping(looping);
player.setVolume(volume, volume);
} catch (Exception e) { } catch (Exception e) {
@ -82,21 +83,6 @@ public enum Music implements MediaPlayer.OnPreparedListener, MediaPlayer.OnError
lastPlayed = null; lastPlayed = null;
stop(); stop();
} }
@Override
public void onPrepared( MediaPlayer mp ) {
player = mp;
player.start();
player.setLooping(looping);
player.setVolume(volume, volume);
}
@Override
public boolean onError( MediaPlayer mp, int what, int extra ) {
mp.release();
player = null;
return true;
}
public void pause() { public void pause() {
if (player != null) { if (player != null) {