J'espérais que quelqu'un puisse m'aider à comprendre un problème que je vois avec la classe Mediaplayer.Deux instances de mediaplayer Android provoquent des problèmes étranges
Je crée une application musicale qui doit lire deux fichiers musicaux en même temps. Dans l'un des cas d'utilisation, je veux être en mesure de lire une piste MP3 et ensuite lancer un autre MP3 pour commencer à jouer à un volume différent sur le dessus de la première.
J'ai trouvé que la classe Android mediaplayer offre cette fonctionnalité et a créé une application de test pour cela en créant simplement deux instances de mediaplayer.
Par exemple ...
MediaPlayer mMediaPlayer1,mMediaPlayer2;
mMediaPlayer1 = new MediaPlayer();
mMediaPlayer2= new MediaPlayer();
Le problème que j'ai est que dans l'émulateur il fonctionne très bien et la plupart des appareils que je l'essayer fonctionne très bien, mais sur quelques appareils de test j'obtenir des résultats bizarres quand je essayez de démarrer le second mediaplayer/track.
Ce qui se passe est que le volume de la seconde ou de la première piste audio se réduit soudainement à rien. Je peux voir que le mediaplayer continue de "jouer" car j'ai plusieurs barres de progression configurées pour suivre sa progression mais vous n'entendez rien. J'ai vu ça sur un téléphone OnePlus One et un OnePlus X. Sur ma tablette Asus et sur un téléphone Smasung A3, ça fonctionne bien. Ce n'est pas lié à la version du système d'exploitation, comme je l'ai essayé sur 4.4.2, 5, 6 et 7 avec des résultats mitigés. Il semble définitivement lié au matériel.
J'ai également vu des articles connexes décrivant ce problème mais aucun jusqu'à présent avec une réponse quant à ce qui le cause. Est-ce que quelqu'un peut expliquer cela ou faire la lumière sur le problème? Même si c'est seulement pour comprendre la limitation de ce que je fais?
FYI - J'ai regardé Soundpool mais je ne peux pas l'utiliser parce que les clips que j'utilise sont plus gros que 1Mb.
Merci à l'avance ...