Cómo funciona JustAnswer:

  • Preguntar a un Experto
    Los expertos tiene muchos conocimientos valiosos y están dispuestos a ayudar en cualquier pregunta. Credenciales confirmadas por una empresa de verificación perteneciente a Fortune 500.
  • Obtener una respuesta profesional
    Por correo electrónico, mensaje de texto o notificación mientras espera en su sitio.
    Haga preguntas de seguimiento si lo necesita.
  • Garantía de satisfacción plena
    Garantizamos tu satisfacción.

Formule su propia pregunta a D.Soto

D.Soto
D.Soto, Técnico Informático
Categoría: Informática
Clientes satisfechos: 1083
Experiencia:  Especialista en desarrollo de Software y Hardware.
54216380
Escriba su pregunta sobre Informática aquí...
D.Soto está en línea ahora

Ayuda para escribir un programa Androide 2.3 en Eclipse Indigo

Pregunta del cliente

Ayuda para escribir un programa Androide 2.3 en Eclipse Indigo que
lea del microfono y guarde los datos en un archivo por un tiempo {T}.
Enviada: hace 5 año.
Categoría: Informática
Experto:  Jose Mari escribió hace 5 año.
Buenos días,

Existen multitud de aplicaciones como la que usted solicita en Android Market. Descarguese en el apartado de Software las aplicaciones que usted desee.

Para cualquier tipo de aclaración o duda, por favor, póngase en contacto conmigo. Si usted cree que la respuesta aportada es válida, por favor, marque la respuesta como correcta.

Quedando a la espera de recibir noticias suyas, reciba un saludo,
Experto:  D.Soto escribió hace 5 año.

Hola, ¡Bienvenido a JustAnswer!

 

¿Básicamente lo que quieres es un programa de grabación de audio que, al momento de pulsar GRABAR este empieza a almacenar la info pero en un tiempo determinado?

Por ejemplo, si quiero grabar un audio de algún programa de tv entonces pulso GRABAR y selecciono el tiempo p.e. POR 5 MINUTOS y comienza a almacenar la info y se detiene automáticamente a los 5 minutos.

Algo así?

Porque te tengo el código para grabar audio solo faltaría introducirle algún código de cronómetro.

Cliente: escribió hace 5 año.
Buenos dias D. Soto,
Exactamente eso es lo que quiero.
Experto:  Jose Mari escribió hace 5 año.
Buenas tardes,

Yo le recomiendo que se descargue la utilidad que usted necesita desde el android market (existen numerosas aplicaciones que hacen lo que usted quiere).
Para cualquier tipo de aclaración o duda, por favor, póngase en contacto conmigo. Si usted cree que la respuesta aportada es válida, por favor, marque la respuesta como correcta.

Quedando a la espera de recibir noticias suyas, reciba un saludo,
Experto:  Chilectron escribió hace 5 año.
Hola Gracias XXXXX XXXXX a Expertos de Just Answer..

jmadgan el esta programando un software totalmente nuevo en android no necesita algo ya inventado, amigo le recomiendo que analice como funciona la grabadora de sonidos de cualquier telefono con android y eso lo aplique al software que usted esta creando.por lo que entiendo tienes que trabajar con el archivo "soundrecorder.apk" yo recien me estoy metiendo a programar en android y sinceramente no me siento con los conocimientos apropiados del caso y no me gusta recomendar paginas ya que en google cualquiera se pone a hacer copy y paste aca ....

y eso no es solucionar su problema....


saludos
Cliente: escribió hace 5 año.
jmadgan, chilectron entiende lo que quiero saber, pero no me lo contesta, espero a D. Soto, mil gracias de todos modos.
Saludos,
Experto:  Chilectron escribió hace 5 año.
no es que no conteste estoy moviendome de ubicacion..... cuentame que necesitas
Experto:  D.Soto escribió hace 5 año.

pues nomás me falta integrar el código para el temporizador, a ver si Chilectron podría aportar algo con este código para hacerlo más eficiente.

Cliente: escribió hace 5 año.
Como funciona el codigo que tienes?
Start stop?
Experto:  D.Soto escribió hace 5 año.

Así es, con pausa también, mira ahorita no estoy en mi PC habitual (donde tengo el programa) el código lo tengo en esa, pero ya te lo mostraré. Ya mas o menos integraré el temporizador en donde le pones cuánto tiempo quieres que grabe desde el mic.

Experto:  D.Soto escribió hace 5 año.
vamos en lo correcto?
Cliente: escribió hace 5 año.
Buenos dias D. Soto,
Mandame el codigo que tienes para irle adelantando a entenderlo y luego me mandas el codigo del tiempo.

saludos,
Fernando
Experto:  D.Soto escribió hace 5 año.
Ahora te lo pongo.
Experto:  D.Soto escribió hace 5 año.
Start, Stop, Play, Finish




import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Test extends Activity implements OnClickListener,
OnCompletionListener {

TextView statusTextView;

Button startRecording, stopRecording, playRecording, finishButton;

MediaRecorder recorder;
MediaPlayer player;

File audioFile;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

statusTextView = (TextView) this.findViewById(R.id.StatusTextView);
statusTextView.setText("Ready");

stopRecording = (Button) this.findViewById(R.id.StopRecording);
startRecording = (Button) this.findViewById(R.id.StartRecording);
playRecording = (Button) this.findViewById(R.id.PlayRecording);
finishButton = (Button) this.findViewById(R.id.FinishButton);

startRecording.setOnClickListener(this);
stopRecording.setOnClickListener(this);
playRecording.setOnClickListener(this);
finishButton.setOnClickListener(this);

stopRecording.setEnabled(false);
playRecording.setEnabled(false);
}

public void onClick(View v) {
if (v == finishButton) {
finish();
} else if (v == stopRecording) {
recorder.stop();
recorder.release();
player = new MediaPlayer();
player.setOnCompletionListener(this);
try {
player.setDataSource(audioFile.getAbsolutePath());
player.prepare();
} catch (Exception e) {
throw new RuntimeException(
"Exception in MediaPlayer.prepare", e);
}

statusTextView.setText("Ready to Play");

playRecording.setEnabled(true);
stopRecording.setEnabled(false);
startRecording.setEnabled(true);
} else if (v == startRecording) {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/files/");
path.mkdirs();

try {
audioFile = File.createTempFile("recording", ".3gp", path);
recorder.setOutputFile(audioFile.getAbsolutePath());
} catch (Exception e) {
throw new RuntimeException(
"Exception on MediaRecorder.prepare", e);
}
recorder.start();
statusTextView.setText("Recording");
playRecording.setEnabled(false);
stopRecording.setEnabled(true);
startRecording.setEnabled(false);
} else if (v == playRecording) {
player.start();
statusTextView.setText("Playing");
playRecording.setEnabled(false);
stopRecording.setEnabled(false);
startRecording.setEnabled(false);
}
}

public void onCompletion(MediaPlayer mp) {
playRecording.setEnabled(true);
stopRecording.setEnabled(false);
startRecording.setEnabled(true);
statusTextView.setText("Ready");
}
}

//main.xml













Experto:  D.Soto escribió hace 5 año.
en 3gp...está bien??
Cliente: escribió hace 5 año.
D. Soto,
Abro un nuevo programa y le pego esto que me mandaste o que?
Experto:  D.Soto escribió hace 5 año.

a ver pruebalo y si te sale un msje de error me dices que dice ese mensaje...hay que hacer el diseño de los bottons o labels

Experto:  D.Soto escribió hace 5 año.

ah! se me olvido lo del prinicipio el package:

 

package app.test;

Experto:  D.Soto escribió hace 5 año.

Te recomiendo fuertemente un pequeño tutorial de 1 min. acerca del layout editor

 

http://developer.android.com/videos/index.html#v=Oq05KqjXTvs

 

Cliente: escribió hace 5 año.
Estimado D. Soto,
El sitio que me llevo una hora y está muy interesante pero es para otra plataforma de desarrollo.
Recuerda estoy trabajando en Eclipse Indico Java.
De todas maneras le pegue el código que me mandaste a una aplicación que solo daba la bienvenida y escribía un texto en el lineal layout. No me declara errores pero no hace nada nuevo solo lo que hacia antes.
Que hago
Experto:  D.Soto escribió hace 5 año.

disculpa, por error de sistema no se publicó lo anterior te lo vuelvo a escribir,

 

para poder testear ese codigo es desde un nuevo proyecto no en p.e. la app en que lo probaste porque ahí no tienes los botones de start, stop, play y finish

 

es necesario crear dichos botones y enlazarlos con el codigo de tal forma que cuando en el emulador clickeas start este comience a trabajar.

 

No se sime estoy explicando.

 

Déjame te busco algo que te puede servir, que veas graficamente lo que te estoy diciendo.

 

p.d. estoy trabajando en el temporizador.

Cliente: escribió hace 5 año.
D. Soto,
Porque hacemos el programa en pedazos, pero dentro de una aplicación Android.
Sin botones y sin tiempo.
Primero leer del micrófono y graficar en la pantalla, las 44,100 muestras por segundo, graficando encima los siguientes segundos.
De esa manera veremos la entrada del mic como se vería en un Ociloscopio.
Saludos
Experto:  D.Soto escribió hace 5 año.

Eso no me lo habías mencionado, que querías que se viera la frecuencia, ese codigo arriba no creo que te sirva mucho,

 

me confirmas si quieres frecuencia entonces visible en tu app?

Cliente: escribió hace 5 año.
D. Soto,
Después de ver lo largo del código que me mandaste creo que es más fácil que digiera solo leer del CODEC y graficar uno de cada diez los valores como primer paso.
Saludos,
Experto:  D.Soto escribió hace 5 año.

ok, comenzaré a trabajar en ello.

 

 

Cliente: escribió hace 5 año.
Tienes algo para probar?
Experto:  D.Soto escribió hace 5 año.

Pues sinceramente aun no he terminado el código he tenido algunas fallas, sobre todo al momento de visualizarlas en pantalla, he querido contactar con chilectron a ver si me puede apoyar en el reintegro de algunos códigos.

 

Quieres algo parecido a esto, verdad?

http://code.google.com/p/moonblink/wiki/Audalyzer

 

Experto:  D.Soto escribió hace 5 año.

Te pongo el código para que analices, aun falla puedes probarlo

 

package com.example.audiorecordtest;

 

import android.app.Activity;
import android.os.Bundle;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;

public class audioRecordTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

 

int freq =44100;
int chan = AudioFormat.CHANNEL_IN_MONO;
int enc = AudioFormat.ENCODING_PCM_16BIT;
int src = MediaRecorder.AudioSource.MIC;
int buflen = AudioRecord.getMinBufferSize(freq, chan, enc);
AudioRecord ar = new AudioRecord(src,freq,chan,enc,20*buflen);
int test = ar.getState();
}
}

short[] buffer = new short[readSize];

audioInput.startRecording();

audioInput.read(buffer, index, readSize);

Cliente: escribió hace 5 año.
D. Soto Mil gracias, Regrese de viaje, necesito tiempo para probar este codigo, me pregunto que hara el cogico , imprime algo, grafica algo o que?
Saludos, Fernando
Experto:  D.Soto escribió hace 5 año.

en teoría, debiera leer del micrófono y graficar en la pantalla la freq de 44100

Cliente: escribió hace 5 año.
Algo similar a la aplicacion audalzer?
Experto:  D.Soto escribió hace 5 año.
Sí, solo que no mide dB -decibeles, Audalyzer mide decibeles, frecuencia.
Cliente: escribió hace 5 año.
Que le pongo en el main.xml?
Experto:  D.Soto escribió hace 5 año.
<?xml version="1.0" encoding="utf-8"?>
Cliente: escribió hace 5 año.
Estoy tratando de armar el programa y me encutro que detecta errores?
Cliente: escribió hace 5 año.
D. Soto,
Esta linea marca error:
short[] buffer = new short[readSize];
QUe puedo hacer, se te olvido definir "readSize" o que?

Podrias quitarle el Pop-Up que sale inmediateamente despues de leer tu respuesta es inesesario y muy molesto y no deja trabajar en lo quie me dices.
Saludos,
Fernando
Experto:  D.Soto escribió hace 5 año.

sustituye a [1024]

Experto:  D.Soto escribió hace 5 año.

en: AudioRecord.getMinBufferSize(freq, chan, enc);

sustituye freq, chan y enc.por sus respectivos valores y codigos:

 

( 44100, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT );

 

y así sucesivamente cuando necesites especificar.

Cliente: escribió hace 5 año.
D. Soto,
Lo anterior no es el problema, dado que el codigo define esas variables.
Lo de 1024 si resuelve esa linea pero genera error en las siguientes dos lineas que son las últimas del codigo que me mandaste.

short[] buffer = new short[1024];
audioInput.startRecording();
audioInput.read (buffer, index, readSize);


Creo que te falto codigo, o me podrias esplicar como graficara este codigo los datos capturados por el mic?

Saludos,
Fernando
Experto:  D.Soto escribió hace 5 año.

lo estoy revisando es precisamente que estoy tratando de corregir eso del short[] buffer.

Cliente: escribió hace 5 año.
Te espero,
Experto:  D.Soto escribió hace 5 año.

Te voy a pedir que sustituyas con el sig.

// construir AudioRecord para grabar audio desde el microfono con frecuencia de muestreo de 44100Hz

int minSize = AudioRecord.getMinBufferSize(sampleRate,AudioFormat.

CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT);

AudioRecord audioInput = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate,

AudioFormat.CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT);

minSize)

JustAnswer en los medios:

 
 
 
Sitios web de consulta médica: Si tiene una pregunta urgente puede intentar obtener una respuesta de sitios que afirman disponer de distintos especialistas listos para proporcionar respuestas rápidas... Justanswer.com.
JustAnswer.com...ha visto como desde octubre se ha disparado el número de consultas legales de nuestros lectores sobre despidos, desempleo e indemnizaciones por cese.
Los sitios web como justanswer.com/legal
...no dejan nada al azar.
El tráfico en JustAnswer ha aumentado un 14 por ciento...y hemos recibido 400.000 visitas en 30 días...las preguntas relacionadas con el estrés, la presión alta, la bebida y los dolores cardíacos han aumentado un 33 por ciento.
Tory Johnson, colaboradora de GMA sobre temas relacionados con el lugar de trabajo, habla sobre el "teletrabajo", como JustAnswer, en el que expertos verificados responden a las preguntas de las personas.
Le diré que... las pruebas que hay que superar para llegar a ser un experto son muy rigurosas.
 
 
 

Opiniones de nuestros clientes:

 
 
 
  • Explicación simple y concreta que facilitó enormemente lo que tenía que hacer. Osvaldo Argentina
  • Explicación simple y concreta que facilitó enormemente lo que tenía que hacer. Osvaldo Argentina
  • Gracias! Servicio excelente. Me ha gustado trabajar con los Expertos. Éxito y gracias. Estefanía Chile
  • Muy agradecida. Si lo necesito volveré a utilizar el site. Mari Ramírez San Juan, Puerto Rico
  • El tiempo de respuesta es excepcional, de menos de 6 minutos. La pregunta se respondió con profesionalidad y con un alto grado de compasión. Inés Santander
  • Quedé muy satisfecho con la rapidez y la calidad de los consejos que recibí. Me gustaría añadir que puse en práctica los consejos y que funcionaron la primera vez y siguen haciéndolo. Luis Málaga
  • Es un servicio fantástico y M. Castillo me ayudó muchísimo y me proporcionó algunos sitios web y herramientas estupendos que me permitieron ampliar mis conocimientos sobre la pregunta. ¡Muchas gracias! Esther Sevilla
  • Un servicio estupendo: rápido, eficiente y preciso. ¿Qué más se puede pedir? No tengo palabras para agradecer su ayuda. María Barcelona
 
 
 

Conozca a los expertos:

 
 
 
  • Jesús

    Jesús

    Técnico Informático

    Clientes satisfechos:

    711
    Experto en Software, Hardware y Redes.
  • http://ww2.justanswer.com/uploads/JE/jesemo/2012-2-26_21847_yocarnet.64x64.jpg Avatar de Jesús

    Jesús

    Técnico Informático

    Clientes satisfechos:

    711
    Experto en Software, Hardware y Redes.
  • http://ww2.justanswer.com/uploads/ES/Estigia/2011-10-18_211225_VMNB.64x64.JPG Avatar de Estigia

    Estigia

    Ing. en Electrónica

    Clientes satisfechos:

    1009
    Especializado en HW, SW e Infraestructura de Redes.
  • http://ww2.justanswer.com/uploads/AR/arcangelus/2012-1-3_2523_Jluis.64x64.jpg Avatar de arcangelus

    arcangelus

    Ing. en Sistemas

    Clientes satisfechos:

    428
    Más de 20 años de experiencia en Informatica
  • http://ww2.justanswer.com/uploads/RR/rrubidio/2015-3-16_19381_arnetnuevo.64x64.jpeg Avatar de Rubén Díaz

    Rubén Díaz

    Técnico en computación, informática

    Clientes satisfechos:

    381
    Más de 7 años de experiencia en soporte informático in-situ y remoto, con conocimientos en equipos Windows, Mac, Smartphone y periféricos.
  • http://ww2.justanswer.com/uploads/AL/Albertillo/2012-10-29_21350_newtshirthe.64x64.jpg Avatar de Albertillo

    Albertillo

    Ingeniero Superior en Informática

    Clientes satisfechos:

    23
    Último curso de carrera
  • http://ww2.justanswer.com/uploads/RA/ratonxi/2012-1-3_151146_1.64x64.png Avatar de ratonxi

    ratonxi

    Licenciatura

    Clientes satisfechos:

    13
    Licenciado en Física, expecialidad física computacional.
 
 
 

Preguntas relacionadas con Informática