Lier choix Spinner et Lyrics au MediaPlayer
Résolu/Fermé
Umwami
Messages postés
140
Date d'inscription
mercredi 29 août 2018
Statut
Membre
Dernière intervention
6 septembre 2018
-
Modifié le 29 août 2018 à 19:09
Umwami Messages postés 140 Date d'inscription mercredi 29 août 2018 Statut Membre Dernière intervention 6 septembre 2018 - 30 août 2018 à 18:03
Umwami Messages postés 140 Date d'inscription mercredi 29 août 2018 Statut Membre Dernière intervention 6 septembre 2018 - 30 août 2018 à 18:03
A voir également:
- Lier choix Spinner et Lyrics au MediaPlayer
- Liste déroulante de choix excel - Guide
- Lier calendrier outlook et gmail - Guide
- Lyrics titreauteur - Télécharger - Audio & Musique
- Lyrics piste 5artiste inconnu - Forum Création et production musicale
- Sxxxoxxxe lyrics 2023 youtube playlist video viral indonesia - Forum YouTube
2 réponses
BunoCS
Messages postés
15498
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 janvier 2025
3 913
30 août 2018 à 09:01
30 août 2018 à 09:01
Hello,
Quel est ton problème exactement ?
- Afficher des valeurs dans ton Spinner ?
- Récupérer la valeur sélectionnée ?
- Stocker tes fichiers ?
- Jouer tes fichiers ?
Quel est ton problème exactement ?
- Afficher des valeurs dans ton Spinner ?
- Récupérer la valeur sélectionnée ?
- Stocker tes fichiers ?
- Jouer tes fichiers ?
BunoCS
Messages postés
15498
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 janvier 2025
3 913
30 août 2018 à 09:59
30 août 2018 à 09:59
Alors, il te faut:
- un listener sur ton Spinner pour connaître le changement de sélection
- un mapping pour associer telle musique avec tels lyrics. Tu peux créer par exemple une liste d'objet
Cet objet va permettre d'alimenter ton Spinner.
- une
- un listener sur ton Spinner pour connaître le changement de sélection
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { // ton code ici } @Override public void onNothingSelected(AdapterView<?> parentView) { // ton code ici } });
- un mapping pour associer telle musique avec tels lyrics. Tu peux créer par exemple une liste d'objet
Music:
public class Music { String mTitle; // Titre de la musique int mResMusicId; // ID de la ressource musicale int mResLyricsId; // ID de la ressource lyrics }
Cet objet va permettre d'alimenter ton Spinner.
- une
TextViewpour afficher le texte des lyrics. Peut-être prévoir une
ScrollViewsi le texte est trop long....
Umwami
Messages postés
140
Date d'inscription
mercredi 29 août 2018
Statut
Membre
Dernière intervention
6 septembre 2018
133
Modifié le 30 août 2018 à 10:43
Modifié le 30 août 2018 à 10:43
au niveau du setOnItemSelectedListener , je comprend que c'est là que je met ce qui va se passer lorsque je vais appuyer sur un Item dans le Spinner, mais étant donner que j'ai 220 musiques à mettre, dois-je faire une sorte de "case" partant de la position 0 à 219 ? en mentionnant dans chaque "case" l'id de la musique à charger dans le MediaPlayer et les Lyrics à afficher ?
Je suis assez à l'aise avec le XML mais j'ai un réel souci avec la structure dans le MainActivity, je sais que c'est une évidence pour vous et je m'en excuse ="/
Je suis assez à l'aise avec le XML mais j'ai un réel souci avec la structure dans le MainActivity, je sais que c'est une évidence pour vous et je m'en excuse ="/
BunoCS
Messages postés
15498
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 janvier 2025
3 913
30 août 2018 à 11:00
30 août 2018 à 11:00
Le point 2 que je t'ai décrit va t'éviter un grand switch..case inutile : Il faut que tu construise ton mapping pour avoir une liste d'objets. Ensuite, quand tu sélectionne une valeur dans le spinner, tu reçois la position de l'objet. Il te sera donc facile de récupérer les données associées.
Umwami
Messages postés
140
Date d'inscription
mercredi 29 août 2018
Statut
Membre
Dernière intervention
6 septembre 2018
133
Modifié le 30 août 2018 à 11:12
Modifié le 30 août 2018 à 11:12
reçu 5/5 !
Je viens d'essayer ceci (Oui je raisonne en C++ haha) mais ca n'as rien donner :
Je vais tester votre dernier conseil, à tout à l'heure. =")
Je viens d'essayer ceci (Oui je raisonne en C++ haha) mais ca n'as rien donner :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner)findViewById(R.id.spinner_chansons);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
if(position==0){
mp.setDataSource(R.raw.queen_mama);
}
if(position==1) {
mp.setDataSource(R.raw.eurythmics_sweet_dreams);
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
Je vais tester votre dernier conseil, à tout à l'heure. =")
Umwami
Messages postés
140
Date d'inscription
mercredi 29 août 2018
Statut
Membre
Dernière intervention
6 septembre 2018
133
30 août 2018 à 11:22
30 août 2018 à 11:22
Comme ce ci ? :
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { public class Music { String mTitle; int mResMusicId; int mResLyricsId; } } @Override public void onNothingSelected(AdapterView<?> parentView) { return; } });
BunoCS
Messages postés
15498
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 janvier 2025
3 913
30 août 2018 à 11:25
30 août 2018 à 11:25
Alors, non. On ne définit pas une classe à l'intérieur d'une méthode.
Je vois ça plutôt dans un Singleton externe, ou bien ou démarrage de ton Activity
Je vois ça plutôt dans un Singleton externe, ou bien ou démarrage de ton Activity
Modifié le 30 août 2018 à 09:36
Alors oui, petit rappel du fonctionnement de l'App :
Sélection de la chanson via la liste dans le Spinner, affichage des Lyrics en fonction de la chanson et chargement de la musique dans le MediaPlayer.
Ma question :
Comment faire en sorte que quand je sélectionne une musique dans le Spinner, les paroles s'affichent (au milieu de l'ecran) et la musique se charge dans le MediaPlayer tout simplement.
PS : Je sais que c'est simple à faire mais je suis un novice en la matière. J'ai beau chercher le code à mettre dans MainActivity.java dans des Tutos, Forums...etc mais je ne trouve pas.
Encore merci pour vos réponses BrunoCS.