Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

Captura de audio

Versão para impressãoVersão para impressãoSend by emailSend by email

Ola!!! Sou novo neste fórum e também em programação J2ME. Estou fazendo meu trabalho de conclusão no curso de Ciências da Computação, e estou tentando capturar audio em dispositivos móveis (telefones). Estou usando um exemplo do próprio NetBeans_5.5 o "MMAPIExample para MIDP 2.0 CLDC 1.0", e o telefone que estou testando é um MOTOROLA_C650. O problema é que quando tento rodar o programa no meu telefone da esse erro "createPlayer() failed. No PitchControl!", no emulador do próprio aparelho e no meu PC o programa funciona... Será que existem bloqueios ou restrições a este tipo de recurso? Alguém pode me ajudar???

Fragmento de codigo

Ola,

Você tem um fragmento do código que esta usando?

Juan Felipe

Fragmento...

Ola Juan!!! Desisti do exemplo do Netbeans, tava muito complicado, e parti para um que encontrei no site da sun "http://java.sun.com/javame/reference/apis/jsr135/index.html?javax/microedition/media/Manager.html", Ali fala tudo sobre esta api, não consegui ler tudo ainda, mas, O código é este:
try {
System.out.println("Capturando Audio");
// Crie um DataSource que captura audio ao vivo.
//Player p = Manager.createPlayer("capture://audio"); //default
Player p = Manager.createPlayer("capture://audio?encoding=gsm&rate=96000&bits=8&Channels=1"); //?encoding=amr"); ?rate=8000&bits=8&Channels=1");
p.realize();
// Adquira o RecordControl, fixe o local de registro, e
// comece o Jogador e registre durante 5 segundos.
//RecordControl rc = (RecordControl)p.getControl("RecordControl");
//rc.setRecordLocation("file:/audio/audio.amr"); //("file:/tmp/audio.wav");
//rc.startRecord();
p.start();
Thread.currentThread().sleep(5000);
p.stop();
//rc.stopRecord();
//rc.commit();
}catch (IOException ioe) {
}catch (MediaException me) {
}catch (InterruptedException e) {}

Pelo que eu li no Manager.createPlayer() deverá conter uma especificação de coleta de dados do aparelho, no meu caso o Motorola C650, no caso é onde esta dando o erro, e também esta dando erro no uso do RecordControl, mas, acho que deve ser a implementação que falta alguma coisa...

Ezequiel Bazotti... (zottti@gmail.com)

recordControl é protegido no c650

Eu não conheço o C650 bem (não é um dos aparelhos que a Nextel oferece e eu nunca programei com ele) mais acho que o código não tem problemas -- o problema é com a proteção do API (pag 106 do guia de desenvolvedores do C650). O Multimedia Recording (o createPlayer("capture://...") ) requere de uma assinatura digital, mais acho que deveria dar um erro de segurança, não o erro que esta gerando.

O processo de assinatura de aplicativos nos aparelhos da Nextel eu o conheço bem, mais não no C650 -- a MotoDev tem um bom guia de assinaturas que pode usar para fazer os testes.

Eu tentaria com uma assinatura e com o exemplo de MMAPI que tem a Motorola no guia de desenvolvedores do C650.

Desculpas por não poder ajudar mais...

Juan Felipe

Hi everybody, I could make an

Hi everybody,
I could make an app to record audio, specifically I do not know C650 neither but it works with current models. You must sign the app using javax.microedition.media.control.RecordControl and you can check if the phone supports it using the key System.getProperty("supports.audio.capture").
I've worked with AMR format, which is kind of standard for mobiles.

Regards,
Juan Carlos