2010-12-04 5 views
1

J'essaye d'écrire du code en J2ME pour le Nokia SDK (appareil S60) et j'utilise Eclipse.L'objet joueur J2ME se bloque avant le pré-chargement

Le code essaie de lire certains fichiers wav placés dans le répertoire "res" du projet. Le code est le suivant:

InputStream in1 = null; 
     System.out.println("ABout to play voice:" + i); 
     try { 
      System.out.println("Getting the resource as stream."); 
      in1 = getClass().getResourceAsStream(getsound(i)); 
      System.out.println("Got the resouce. Moving to get a player"); 
     } 
     catch(Exception e) { 
      e.printStackTrace(); 
     } 
     try { 
      player = Manager.createPlayer(in1, "audio/x-wav"); 
      System.out.println("Created player."); 
      //player.realize(); 
      //System.out.println("Realized the player."); 
      if(player.getState() != player.REALIZED) { 
       System.out.println("The player has been realized."); 
       player.realize(); 
      } 
      player.prefetch(); 
      System.out.println("Fetched player. Now starting to play sound."); 
      player.start(); 
      in1.close(); 
      int i1 = player.getState(); 
      System.out.println("Player opened. Playing requested sound."); 
      //player.deallocate(); 
      //System.out.println("Deallocated the player."); 
     } 
     catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Lorsque la fonction getSound renvoie une chaîne qui contient le nom du fichier à lire. Il se présente comme suit:

private String getSound(int i) { 
    switch(i) { 
    case 1: return "/x1.wav"; 
    case 2: return "/x2.wav"; 
    } 
} 

Mon problème est le suivant: 1. Lorsque je tente d'ajouter plus de 10 sons, l'application se bloque tout le droit avant que la fonction prefetch() est appelée. L'ensemble du système ralentit considérablement pendant un certain temps. Je dois ensuite redémarrer l'application.
J'ai essayé de déboguer cela, mais je n'ai pas encore trouvé de solution. Ce serait génial si je pouvais obtenir de l'aide à ce sujet.

Répondre

1

Le problème réside dans l'émulateur utilisé pour le projet. Dans l'onglet d'émulation dans la fenêtre Exécuter Configurations, l'appareil suivant doit être sélectionné:

Groupe: Nokia N97 SDK v1.0
Appareil: S60 Emulator

Passage au-dessus de périphériques répertoriés sous le Sun Java Wireless Toolkit a résolu le problème.