2010-05-26 18 views
0

J'ai lutté beaucoup avec notre classe bien-aimé MediaPlayer ... Spécifiquement je veux simplement jouer des sons de certains fichiers ... Je reçois deux types spécifiques de erreurs en fait, et non continuesly mais il semble aléatoire ... Parfois 10 fichiers sont lus rigth loin sans erreur, le MediPlayer semble cesser d'accepter un autre fichier ... Ok la première erreur:En ce qui concerne IllegalStateExceptions, MediaPlayer, a échoué prépare et codes d'état

- 05-26 15:02:00.916: ERROR/MediaPlayer(25793): error (1, -4) 
- 05-26 15:02:00.916: ERROR/setupplayer(25793): java.io.IOException: Prepare failed.: status=0x1 

Eh bien pour celui-ci, j'ai vu plusieurs solutions: utiliser

mp.setDataSource(ins.getFD()); (with ins being an inputstream to my File) 

et/ou d'utiliser

mp.setDataSource(ins.getFD(), 0, f.length()); 

Les deux malheureusement ne résoudra pas le problème, et je voudrais simplement LOVE de savoir ce que l'erreur très complet (1, -4) est ... Et où puis-je trouver les codes des Etats du MediaPlayer? J'ai aussi essayé d'utiliser prepareAsync() au lieu de préparer() mais pour être honnête, il ne semble pas faire de différence du tout .. La deuxième erreur est l'exception qui est jeté:

05-26 15:17:30.456: ERROR/playNextPlayer(27303): Error caught : java.lang.IllegalStateException 

qui , Je suppose, pourrait être liée à la première erreur/problème?

+0

Salut TIGER poster votre code – Jorgesys

+1

Lecture de 10 fichiers? Êtes-vous sûr de ne pas vouloir utiliser 'SoundPool'? –

+0

non merci, ces 10 fichiers sont téléchargés dynamiquement à partir du net, et ils sont peut-être entre les 30 secondes et la minute, je crois que SoundPool est seulement une bonne option si c'est pour les sons de type jeu préchargé plus court? – TiGer

Répondre

0

Essayez mp.setDataSource(String path) Par exemple, mp.setDataSource("sdcard/1.mp3");

L'erreur vient du fait de chemin ou FileDescriptor incorrect.

Vous devriez vérifier la State Diagram de Mediaplayer classe