J'utilise la classe MediaPlayer
d'Android pour lire des ressources distantes. Je voudrais que l'utilisateur puisse réutiliser le MediaPlayer
pour ouvrir du contenu et le changer pour en jouer un autre sans avoir à recréer le MediaPlayer
. J'ai donc écrit une méthode pour ouvrir une ressource qui, tout d'abord, réinitialise le MediaPlayer
afin que je puisse l'envoyer à l'état inactif. Après cela, je définis le nouvel URI et j'appelle la méthode de préparation. Il arrive assez souvent, de toute façon, que la méthode setDataSource
se bloque, pendant de nombreuses secondes et même pendant quelques minutes. Voici le code:Réutilisation de MediaPlayer d'Android
mediaPlayer.reset();
mediaPlayer.setDataSource(this, Uri.parse(uri));
mediaPlayer.setDisplay(surfaceHolder);
mediaPlayer.prepare();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
Toute idée pourquoi la méthode doit bloquer pendant plusieurs secondes après setDataSource et avant la méthode setDisplay? Merci!
semble que le problème était lié au dispositif spécifique que j'utilisais. J'ai testé le même code sous Android 2.2 (je connaissais ce problème sous Android 2.1) sur un autre appareil et ça fonctionne comme un charme. –