Pergunta

Alguém sabe de um bom repositório para obter o código de exemplo para o BlackBerry? Especificamente, as amostras que vai me ajudar a aprender a mecânica de gravação de áudio, possivelmente, até mesmo provar isso e fazer alguma sobre o processamento de sinais mosca nela?

Eu gostaria de ler áudio de entrada, amostra por amostra, se necessário, em seguida, processá-lo para produzir um resultado desejado, neste caso um visualizador.

Foi útil?

Solução

RIM API contém JSR 135 Java Mobile Media API para lidar com conteúdo de áudio e vídeo.
Você corrigir cerca de bagunça no BB Knowledge Base. A única maneira é navegar nele, esperando que não vai vai mudar mapa do site novamente.
É desenvolvedores-> Recursos -> Knowledge base -> o Java API e amostras -> Áudio e Vídeo

Gravação de Áudio

Basicamente é simples de gravar áudio:

  • criar Player com codificação de áudio correta
  • get RecordControl
  • começar a gravar
  • parar a gravação

Links:
RIM 4.6.0 API ref: javax Package .microedition.media
Como To - Gravar áudio em um smartphone BlackBerry
Como To - Reproduzir áudio em um aplicativo
Como para - Suporte streaming de áudio para o aplicativo de mídia
Como To - Especifique audio Path Routing
Como To - obter os meios de reprodução de tempo a partir de um aplicativo de mídia
que é - formatos de áudio suportados
que é - códigos de erro aplicativo media

Audio Record Sample

Linha com Player, RecordControl e recursos é declarado:

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

Em Thread.run () gravação de áudio é iniciado:

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

E no Thread.stop () gravação é interrompida:

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

Processamento e amostragem fluxo de áudio

No final da gravação, você terá fluxo de saída cheio de dados em formato de áudio específico. Então, para processar ou provar que você terá que decodificar esse fluxo de áudio.

Falando sobre o processamento de mosca, que será mais complexa. Você terá que ler fluxo de saída durante a gravação sem cometer registro. Portanto, vai haver vários problemas para resolver:

  • Acesso sincronia para fluxo de saída para o gravador e Sampler - enfiando questão
  • ler a quantidade correta de áudio data - ir fundo em formato de decodificação de áudio para descobrir regras de marcação

Também pode ser útil:
java .net: Experimentos em streaming de conteúdo em Java ME por Vikram Goyal

Outras dicas

Enquanto específico não áudio, esta questão tem algum bom "Getting Started" referências.

Applications Escrita Blackberry

I passado as idades tentando descobrir isso também. Depois de instalar os pacotes de BlackBerry componentes (disponível de seu site ), você pode encontrar o código de exemplo dentro do pacote de componente.

No meu caso, uma vez que eu tinha instalado os pacotes de componente no Eclipse, eu encontrei o código de amostra extraída neste local:

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

Infelizmente quando eu importados tudo o que o código de exemplo que eu tinha um monte de erros de compilação. Para solução alternativa que eu só excluiu a 20% dos pacotes com erros de compilação.

Meu próximo problema foi que o lançamento do Simulator sempre lançou o primeiro pacote de código de exemplo (no meu caso activetextfieldsdemo), eu não poderia obtê-lo para executar apenas o pacote que eu estou interessado. Solução para o que era para excluir todos os pacotes listados em ordem alfabética antes do que eu queria.

Outros gotchas:
-À direita clique sobre o projeto no Eclipse e selecione Ativar para BlackBerry
-Escolha BlackBerry -> Configurações construir ... -> Editar ... e selecione o seu novo projeto para que ele constrói
. -Verifique se você colocar o seu código-fonte BlackBerry em uma pasta "src" no projeto Eclipse, caso contrário você pode bater problemas de compilação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top