Android jouer MP3 externe: erreur — MediaPlayer démarrer appelé dans l'état 1
Je vais avoir du mal à jouer un externe fichier MP3 sur Android. Je suis en utilisant le code suivant:
MediaPlayer player = new MediaPlayer();
try {
BufferedInputStream bis = new BufferedInputStream(new java.net.URL(url).openStream());
FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory().getPath() + "/forvo_temp.mp3");
BufferedOutputStream bos = new BufferedOutputStream(fos,1024);
byte [] data = new byte[1024];
int x=0;
while((x=bis.read(data,0,1024))>=0){
bos.write(data,0,x);
}
player.reset();
player.start();
} catch (Exception e) {
e.printStackTrace();
}
url
est la chaîne où le fichier externe est. Je dois avoir les droits d'écriture sur la carte SD (WRITE_EXTERNAL_STORAGE
).
Sur le debug, je vois:
E MediaPlayer start called in state 1
E MediaPlayer error (-38, 0)
E MediaPlayer Error (-38,0)
Quel peut être le problème?
OriginalL'auteur Keelan | 2013-05-12
Vous devez vous connecter pour publier un commentaire.
Trouvé la réponse: avant d'appeler
player.start()
, vous devez exécutersetDataSource()
etprepare()
, selon le Diagramme d'état du lecteur multimédia de référence.Comme ceci:
si vous avez une autre question, veuillez demander en cliquant sur le Poser une Question le bouton. Vous pouvez fournir le lien vers la nouvelle question ici pour référence.
OriginalL'auteur Keelan
Vous devez définir
AndroidManifest.xml
autorisation:pouvez-vous expliquer??
OriginalL'auteur YueYue