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

Java ME Discussion :

Charger en mémoire un son


Sujet :

Java ME

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 24
    Points : 25
    Points
    25
    Par défaut Charger en mémoire un son
    Bonjour à vous,

    Je viens de m'abonner a ce forum et je commence a faire des jeux pour cellulaire et j'aimerais savoir comment faire pour charger en mémoire des son. J'ai penser lire un fichier et enregistrer el fichier dans un tableau de byte. Mais je ne cesse d'avoir des exception et j'aimerais davoir comment mis prendre. Voilà comment j'ai fais jusqu'a maintenant.

    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
     
    public class Sound {
                 private String name, type;
    	private byte []data;
     
    	public Sound(String name, byte []data, String type) {
    		this.data = data;
    		this.name = name;
    		this.type = type;
    	}
     
                 public boolean load() {
    		if (name.equals("")) return false;
     
    		try {
    			InputStream in = getClass().getResourceAsStream(name);
    			if (in==null) return false;
    			ByteArrayOutputStream out = new ByteArrayOutputStream();
    			byte []byteToRead = new byte[1024];
     
    			while (in.read(byteToRead) > 0)
                    out.write(byteToRead, 0, byteToRead.length);						
     
    			this.data = out.toByteArray();
    			in.close();			
    			out.close();
    		}
    		catch (IOException e) {
    			e.printStackTrace();
    			return false;
    		}
     
    		return true;
    	}
     
                 public static void main(String []args) {
    		Sound unSon = new Sound("/s0.mid", null, "audio/midi");
    		if (unSon.load()) {
    			try {
                                                if (unSon.isLoaded()) {
                                                     javax.microedition.media.Player myPlayer = javax.microedition.media.Manager.createPlayer(new ByteArrayInputStream(unSon.getData()),unSon.getType());
     
                                                     myPlayer.realize();
                                                     myPlayer.prefetch();
                                                     myPlayer.start();
                                                }				
    			}
    			catch (Exception e) {
                                                e.printStackTrace();
                                          }
     
    		}
    		else System.out.println("Le son n'existe pas");
    	}
    }
    Merci de m'aider la dessus. Alors voila en gros comment je fais J'ai pas mis les fonction d'accès mais sacher kil existe dans ma classe. Merci d'avance

  2. #2
    Membre éclairé
    Avatar de karami
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2005
    Messages : 343
    Points : 668
    Points
    668
    Par défaut
    Voici un bout de code qui permet de lire le son avec j2me :
    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
     
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    import javax.microedition.media.*;
     
    import javax.bluetooth.*;
    import javax.microedition.io.Connector;
    import javax.microedition.io.StreamConnection;
    import javax.microedition.io.StreamConnectionNotifier;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
     
     
    public class PlayRecordedSoundMIDlet extends MIDlet {	
        protected void pauseApp() {}
        protected void destroyApp(boolean unconditional){}
        protected void startApp() {
            try {
                String type = "audio/x-wav";
                InputStream is = getClass().getResourceAsStream("/audio/bark.wav");
                Player player = Manager.createPlayer(is, type);
                player.start();
            } catch (MediaException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }	
    }
    Attention t'auras besoin de la MIDP 2.0 ou MMAPI pour l'executer.
    Plus nombreux sont les problèmes auxquels on réfléchit , plus on risque de n'en comprendre aucun .
    Pas de questions techniques en privé

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    En gros j'espèrais faire une classe un peu comme la classe Image, je voudrais pouvoir tocker les son en mémoire comme des objet et pouvoir els utiliser comme bon me tente. Est-ce possible de les charger et de fermer els flux de lecture et pouvoir els lire par la suite :S

  4. #4
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    A mon sens il n'existe qu'une méthode de lecture simple du son dans java: Applet.play("sound.wav")

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut charger en mémoire un son
    Ce qui parait c'est que la même classe MediaTracker est chargée de faire ça
    mais peut être c'est à cause de la version de jdk.

    car si vous liserez le help de la classe MediaTracker vous trouverez qu'il peut charger des images ausii que des clips audio.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Mmmm faudrait recadrer tout ca ... est-on avec une CLDC ou une CDC ? Profile MIDP ?

    Si on utilise le couple CLDC/MIDP, on n'a pas de classe Applet ni MediaTracker ... L'utilisation d'un Player, comme le propose karami est la bonne (et seule) solution. Après gardé en mémoire ou pas, c'est un autre problème.

Discussions similaires

  1. Connaitre la taille en mémoire de son application C
    Par Aspic dans le forum Débuter
    Réponses: 7
    Dernier message: 23/03/2009, 23h46
  2. [SAX] Parser un XML sans le charger en mémoire sous forme de document
    Par tdeco dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 10/08/2007, 13h00
  3. [System] Récupération de la taille mémoire de son programme
    Par splend_f dans le forum Général Java
    Réponses: 13
    Dernier message: 02/04/2006, 03h24

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