05-19 11:52:51.622: ERROR/MediaPlayer(1291): prepareAsync called in state 8 05-19 11:52:51.622: WARN/System.err(1291): java.lang.IllegalStateException
try { mp = MediaPlayer.create( Main.this, Uri.parse("http://codejanitor.us/good.mp3")); mp.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); try { mp.prepareAsync(); } catch (IllegalStateException e) { e.printStackTrace(); } } finally { if (mp != null) { mp.release(); mp = null; } }
ALTERNATELY
If I do:
try { mp = MediaPlayer.create( AmazonClipActivity.this, Uri.parse("http://codejanitor.us/good.mp3")); mp.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); } finally { if (mp != null) { mp.release(); mp = null; } }
I get:
05-19 12:22:57.472: DEBUG/MediaPlayer(1635): Couldn't open file on client side, trying server side 05-19 12:22:57.472: INFO/StagefrightPlayer(68): setDataSource('http://codejanitor.us/good.mp3') 05-19 12:22:57.482: INFO/NuHTTPDataSource(68): connect to codejanitor.us:80/good.mp3 @0 05-19 12:23:00.632: INFO/NuCachedSource2(68): ERROR_END_OF_STREAM
mp = MediaPlayer.create(...);
is already preparing the MediaPlayer returned, so you cannot call prepare
(or its variants) again (and there is no need for onPreparedListener as well).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With