Frage

Kennt jemand eine gute Repository Beispielcode für den Blackberry zu bekommen? Insbesondere Proben, die mir die Mechanik der Aufzeichnung von Audio lernen helfen, möglicherweise sogar Abtasten es und einige on the fly Signalverarbeitung auf, es zu tun?

Ich mag eingehendes Audio lesen, Probe Probe, wenn es sein muss, dann ein gewünschtes Ergebnis, in diesem Fall ein Visualizer zu produzieren verarbeiten.

War es hilfreich?

Lösung

RIM-API enthält JSR 135 Java Mobile Media API für den Umgang mit Audio- und Video-Inhalten.
Sie korrigieren zu Chaos auf BB Knowledge Base. Der einzige Weg ist es zu sehen, in der Hoffnung, sie werden nicht wieder in Gang Website Karte benützen.
Es ist Developers-> Ressourcen -> Knowledge Base -> Java API & Samples -> Audio & Video

Audioaufnahme

Im Grunde ist es einfach aufzeichnen Audio:

  • erstellen Spieler mit der richtigen Audio-Encoding
  • erhalten RecordControl
  • Starten der Aufnahme
  • die Aufnahme stoppen

Links:
RIM 4.6.0 API Ref: Paket javax .microedition.media
Wie To - Record Audio auf einem Blackberry-Smartphone
Wie To - Play-Audio in einer Anwendung
Wie um - Unterstützung Audio-Streaming auf der Medienanwendung
Wie To - Geben Sie Audio-Pfad Routing
Wie Um - Besorgen Sie sich die Medien-Wiedergabezeit von einer Medienanwendung
Was ist - Unterstützte Audioformate
Was ist - Media-Anwendung Fehlercodes

Audio Record Beispiel

Thread mit Player, RecordControl und Ressourcen erklärt wird:

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;
   }
}

Auf Thread.run () Audio-Aufnahme gestartet wird:

   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());
            }
         });
      }
   }

Und auf Thread.stop () Aufzeichnung gestoppt:

   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());
         }
      }
   }

Verarbeitung und Sampling-Audio-Stream

Am Ende der Aufnahme werden Sie Ausgabe-Stream mit Daten in bestimmtem Audio-Format gefüllt haben. So bearbeiten oder probieren Sie diese Audio-Stream zu dekodieren haben.

on the fly Verarbeitung sprechen, die komplexer sein wird. Sie müssen während der Aufnahme ohne Aufzeichnung commiting Ausgabe-Stream lesen. So wird es mehrere Probleme zu lösen:

  • Synch-Zugriff auf Ausgangsstrom für Recorder und Sampler - Threading Ausgabe
  • Lesen Sie die richtige Menge an Audio data - geht tief in Audio-Format dekodieren Markup Regeln, um herauszufinden,

kann auch nützlich sein:
java .net: Experimente in Streaming-Inhalt in Java ME von Vikram Goyal

Andere Tipps

Während keine Audio-spezifisch, diese Frage einige gute hat "getting started" Referenzen.

Writing Blackberry-Anwendungen

Ich habe schon versucht, diese auch zu verstehen. Wenn Sie die Blackberry Component Pack installiert haben (verfügbar von ihrer Website ), Sie können den Beispielcode im Inneren des Bauteils Packung finden.

In meinem Fall, wenn ich das Component Pack in Eclipse installiert hatte, fand ich den extrahierten Beispielcode in diesem Ort:

  

C: \ Program   Files \ Eclipse-\ eclipse3.4 \ Plugins \ net.rim.eide.componentpack4.5.0_4.5.0.16 \ components \ samples

Leider, wenn ich all das Beispielcode importiert hatte ich ein paar Kompilierungsfehler. Zur Umgehung, dass ich die 20% der Pakete mit der Kompilierung Fehler nur gelöscht.

Mein nächstes Problem war, dass der Simulator startet immer das erste Beispielcode-Paket gestartet (in meinem Fall activetextfieldsdemo), konnte ich es nicht nur um das Paket zu laufen bekomme ich bin interessiert. Abhilfe für das war alles, um die Pakete zu löschen in alphabetischer Reihenfolge vor dem, die ich wollte.

Andere gotchas:
-Rechts klicken in Eclipse auf das Projekt und wählen Sie Aktivieren für Blackberry
-Wählen Blackberry -> Build-Konfigurationen ... -> Bearbeiten ... und Ihr neues Projekt auswählen, damit es baut
. -Stellen Sie sicher, dass Sie Ihren Blackberry-Quellcode unter einer „src“ -Ordner in dem Eclipse-Projekt setzen, sonst könnten Sie Probleme treffen bauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top