Question

Quelqu'un sait-il d'un bon référentiel pour obtenir le code d'exemple pour le BlackBerry? Plus précisément, les échantillons qui me aideront à apprendre la mécanique de l'enregistrement audio, peut-être même d'échantillonnage et faire un peu sur le traitement du signal de mouche sur elle?

Je voudrais lire audio entrant, échantillon par échantillon le cas échéant, traiter ensuite pour produire un résultat souhaité, dans ce cas, un visualisateur.

Était-ce utile?

La solution

API RIM contient JSR 135 API Java Mobile Media pour le traitement audio et contenu vidéo.
Vous corrigez au sujet de désordre sur BB Base de connaissances. La seule façon est de parcourir, en espérant qu'ils vont ne va pas changer la carte du site à nouveau.
Il est Developers-> Ressources -> base de connaissances -> Java API et échantillons -> Audio & Vidéo

Enregistrement audio

Fondamentalement, il est simple d'enregistrer audio:

  • Créer un lecteur avec un encodage audio correct
  • get RecordControl
  • démarrer l'enregistrement
  • arrêter l'enregistrement

Liens:
4.6.0 ref API: Package javax .microedition.media
Comment pour - enregistrement audio sur un smartphone BlackBerry
Comment pour - Jouez audio dans une application
Comment pour - Prise en charge audio en streaming à l'application multimédia
Comment pour - Indiquer le chemin de routage audio
Comment pour - Obtenir le temps de lecture multimédia à partir d'une application multimédia
Qu'est-ce que est - formats audio pris en charge
Qu'est-ce que est - codes d'erreur application Media

Enregistrement audio Sample

Discussion avec le lecteur, RecordControl et des ressources est déclarée:

final class VoiceNotesRecorderThread extends Thread{
   private Player _player;
   private RecordControl _rcontrol;
   private ByteArrayOutputStream _output;
   private byte _data[];

   VoiceNotesRecorderThread() {}

   private int getSize(){
       return (_output != null ? _output.size() : 0);
   }

   private byte[] getVoiceNote(){
      return _data;
   }
}

Sur l'enregistrement audio Thread.run () démarre:

   public void run() {
      try {
          // Create a Player that captures live audio.
          _player = Manager.createPlayer("capture://audio");
          _player.realize();    
          // Get the RecordControl, set the record stream,
          _rcontrol = (RecordControl)_player.getControl("RecordControl");    
          //Create a ByteArrayOutputStream to capture the audio stream.
          _output = new ByteArrayOutputStream();
          _rcontrol.setRecordStream(_output);
          _rcontrol.startRecord();
          _player.start();    
      } catch (final Exception e) {
         UiApplication.getUiApplication().invokeAndWait(new Runnable() {
            public void run() {
               Dialog.inform(e.toString());
            }
         });
      }
   }

Et sur l'enregistrement Thread.stop () est arrêté:

   public void stop() {
      try {
           //Stop recording, capture data from the OutputStream,
           //close the OutputStream and player.
           _rcontrol.commit();
           _data = _output.toByteArray();
           _output.close();
           _player.close();    
      } catch (Exception e) {
         synchronized (UiApplication.getEventLock()) {
            Dialog.inform(e.toString());
         }
      }
   }

Traitement et échantillonnage flux audio

A la fin de l'enregistrement, vous aurez flux de sortie rempli de données au format audio spécifique. Donc, pour traiter ou goûter, vous devrez décoder ce flux audio.

En parlant sur le traitement de la mouche, qui sera plus complexe. Vous devrez lire le flux de sortie lors de l'enregistrement sans enregistrement commiting. Donc, il y aura plusieurs problèmes à résoudre:

  • l'accès synch à flux de sortie pour flûte à bec et Sampler - question de filetage
  • lire la quantité correcte de da audiota - aller en profondeur Decode format audio pour trouver des règles de balisage

peut également être utile:
java .net: expériences dans le streaming de contenu en Java ME par Vikram Goyal

Autres conseils

Bien que cette question ne précise pas l'audio, ont quelques bonnes « Preparations » références.

écriture d'applications Blackberry

J'ai passé les âges à essayer de comprendre ce trop. Une fois que vous avez installé les packs composant BlackBerry (disponible de leur site ), vous pouvez trouver l'exemple de code à l'intérieur du paquet composant.

Dans mon cas, une fois que je l'avais installé les paquets de composants dans Eclipse, j'ai trouvé l'exemple de code extrait à cet endroit:

  

C: \ Program   Files \ Eclipse \ eclipse3.4 \ plugins \ net.rim.eide.componentpack4.5.0_4.5.0.16 \ composants \ samples

Malheureusement, quand j'importé tout ce que le code d'exemple que j'avais un tas d'erreurs de compilation. Pour contourner que je viens de supprimer 20% des paquets avec des erreurs de compilation.

Mon prochain problème était que le lancement du simulateur toujours lancé le premier paquet de code exemple (dans mon activetextfieldsdemo cas), je ne pouvais pas le faire fonctionner juste le paquet que je suis intéressé. Solution de contournement pour qui devait supprimer tous les paquets par ordre alphabétique avant celui que je voulais.

Autres gotchas:
-Droit cliquez sur le projet dans Eclipse et sélectionnez Activer pour BlackBerry
-Choisissez BlackBerry -> Configurations de construction ... -> Modifier ... et sélectionnez votre nouveau projet il construit
. -Faire que vous mettez votre code source BlackBerry dans un dossier « src » dans le projet Eclipse, sinon vous pourriez frapper construire des problèmes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top