This example describes the Android implementation that directly plays the sound captured by the microphone. Share to everyone for your reference. Specifically as follows:
This is a direct playback microphone captured by the voice thread class:
Class Recordthread extends thread{static final int frequency = 44100;
static final int channelconfiguration = Audioformat.channel_configuration_mono;
static final int audioencoding = Audioformat.encoding_pcm_16bit; @Override public void Run () {//TODO auto-generated method stub int recbufsize = Audiorecord.getminbuffersize (freq
Uency, Channelconfiguration, audioencoding) *2;
int plybufsize = audiotrack.getminbuffersize (Frequency, channelconfiguration, audioencoding) *2; Audiorecord Audiorecord = new Audiorecord (MediaRecorder.AudioSource.MIC, frequency, channelconfiguration,
Audioencoding, recbufsize); Audiotrack audiotrack = new Audiotrack (audiomanager.stream_music, Frequency, channelconfiguration, audioEncoding,
Plybufsize, Audiotrack.mode_stream);
byte[] Recbuf = new Byte[recbufsize];
Audiorecord.startrecording ();
Audiotrack.play ();
while (true) {int readlen = Audiorecord.read (recbuf, 0, recbufsize); Audiotrack.write (recbuf, 0, Readlen);
} audiotrack.stop ();
Audiorecord.stop ();
}
}
When used, this is OK:
Copy Code code as follows:
Recordthread rec = new Recordthread ();
Rec.start ();
You need to add routing permissions to the Androidmanifest.xml file:
Copy Code code as follows:
<uses-permission android:name= "Android.permission.RECORD_AUDIO"/>
I hope this article will help you with your Android program.