Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IllegalStateException for MediaPlayer.prepareAsync

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 
like image 900
hunterp Avatar asked May 19 '11 15:05

hunterp


1 Answers

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).

like image 168
MByD Avatar answered Oct 01 '22 04:10

MByD