2011-01-11 17 views
11

en mi aplicación, necesito dirigir el sonido del micrófono directamente al altavoz. Ninguna otra acción Encontré una forma de dirigir el sonido del micrófono al auricular tocando un archivo y apagando el altavoz. Así que supongo que el hablante puede funcionar de manera similar. Sin embargo, no sé cómo deshacerme de lo del archivo de reproducción. Gracias.cómo reproducir el sonido del micrófono al altavoz directamente en android?

speaker() { 
    m_audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    m_audioManager.setSpeakerphoneOn(true); // not needed I think 
    //m_audioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL); earpiece need this? 
    setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); 
    m_audioManager.setMode(AudioManager.MODE_IN_CALL); 

Respuesta

14

uso AudioRecord & AudioTrack para grabar & juego (el cambio a ..._ música si el altavoz necesita

static final int bufferSize = 200000; 
final short[] buffer = new short[bufferSize]; 
short[] readBuffer = new short[bufferSize]; 
public void run() { 
    isRecording = true; 
    android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO); 
    int buffersize = AudioRecord.getMinBufferSize(11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT); 
    arec = new AudioRecord(MediaRecorder.AudioSource.MIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersize); 
    atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersize, AudioTrack.MODE_STREAM); 
    atrack.setPlaybackRate(11025); 
    byte[] buffer = new byte[buffersize]; 
    arec.startRecording(); 
    atrack.play(); 
      while(isRecording) { 
       arec.read(buffer, 0, buffersize); 
       atrack.write(buffer, 0, buffer.length); 
       } 
    } 
+0

Hey A117, puede usted por favor consulte este enlace http://stackoverflow.com/questions/ 10012009/how-can-i-play-sound-when-device-receive-incoming-call-in-android y sugiérame que su código se utiliza para que cumpla con mis requisitos? Gracias de antemano. – anddev

Cuestiones relacionadas