IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Lire des musiques l'une après l'autre ?!


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Lire des musiques l'une après l'autre ?!
    Bonjour,

    Est-il possible de lire une suite de musique avec MediaPlayer ?
    J'essai de lancer les musiques l'une après l'autre mais sans succès...

    Avec mon script je n'ai aucun souci pour lire le premier titre mais quand celui-ci est fini et que je voudrai que le MediaPlayer passe à l'autre j'ai l'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    12-31 22:35:56.914: E/AndroidRuntime(16748): FATAL EXCEPTION: main
    12-31 22:35:56.914: E/AndroidRuntime(16748): java.lang.IllegalStateException
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at android.media.MediaPlayer._stop(Native Method)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at android.media.MediaPlayer.stop(MediaPlayer.java:961)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.mon.lecteur.PlayerService.stop(PlayerService.java:130)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.mon.lecteur.PlayerService.play(PlayerService.java:104)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.mon.lecteur.PlayerService.checkLecture(PlayerService.java:116)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.mon.lecteur.PlayerService.access$0(PlayerService.java:109)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.mon.lecteur.PlayerService$2.onCompletion(PlayerService.java:74)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1448)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at android.os.Looper.loop(Looper.java:123)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at android.app.ActivityThread.main(ActivityThread.java:3687)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at java.lang.reflect.Method.invokeNative(Native Method)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at java.lang.reflect.Method.invoke(Method.java:507)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
    12-31 22:35:56.914: E/AndroidRuntime(16748): 	at dalvik.system.NativeStart.main(Native Method)
    Voici la section de code qui gère la lecture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    private void play() {
        if (!isPlaying) {
     
          // Préparation des données de la musique
          String url_morceau = URL;
          String titre_morceau = mon_titre;
     
          try {
        	mediaplayer = new MediaPlayer();
     
    		mediaplayer.setDataSource(url_morceau);
    		mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
     
    		mediaplayer.setOnPreparedListener(new OnPreparedListener() {
    			//
    			public void onPrepared(MediaPlayer mp) {
    				// Quand le listener est déclenché on lance la musique
    				mp.start();
    			}
    		});
    		// Listener déclenché a la fin de la lecture du titre
    		mediaplayer.setOnCompletionListener(new OnCompletionListener() {
    			public void onCompletion(MediaPlayer mp) {
    				// Quand la lecture d'un titre est terminé
    				 mp.stop();
    			     mp.release();
    			      checkLecture();
    			}
    		});
    		mediaplayer.prepareAsync();	
          } catch (IllegalArgumentException e) {
        	 Toast.makeText(PlayerService.this, "Musique illisible ou irrécupérable", Toast.LENGTH_SHORT).show();
          } catch (IllegalStateException e) {
    			// TODO Auto-generated catch block
        	  Toast.makeText(PlayerService.this, "Statut du média invalide", Toast.LENGTH_SHORT).show();
          } catch (IOException e) {
    			// TODO Auto-generated catch block
        	  Toast.makeText(PlayerService.this, "Erreur - Exception I/O", Toast.LENGTH_SHORT).show();
          }
     
          Notification note=new Notification(R.drawable.little_icon_player,titre_morceau,System.currentTimeMillis());
          Intent i=new Intent(this, LecteurActivity.class);
     
          i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
     
          PendingIntent pi=PendingIntent.getActivity(this, 0,
                                                      i, 0);
     
          note.setLatestEventInfo(this, "Lecteur",titre_morceau,pi);
          note.flags|=Notification.FLAG_NO_CLEAR;
          isPlaying = true;
          startForeground(1337, note);
        }else{
        	stop();
        	play();
        }
      }
     
      private void checkLecture(){
      	 // Fait des vérif et relance play()
       }
     
      private void stop() {
        if(isPlaying) {
          mediaplayer.stop();
          mediaplayer.release();
          Log.w(getClass().getName(), "On est dans stop()!");
          stopForeground(true);
        }
      }
    Merci par avance.
    Cordialement.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Problème résolu !

    Ma variable isPlaying mettait le bronx... rien de plus ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ajouter des feuilles les une après les autres VBA
    Par Stroub dans le forum Excel
    Réponses: 1
    Dernier message: 22/11/2012, 18h40
  2. Lire des sons, les un aprés les autres
    Par gastoncs dans le forum VB.NET
    Réponses: 5
    Dernier message: 16/08/2011, 01h40
  3. Lancer des requêtes les unes après les autres
    Par JonathanMQ dans le forum PL/SQL
    Réponses: 3
    Dernier message: 26/07/2010, 10h00
  4. Lire 2 frames l'une après l'autre
    Par mouaa dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 08/09/2008, 14h09
  5. [Débutant] Charger et afficher des images les unes apres les autres
    Par kharon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/03/2007, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo