小编Jon*_*nny的帖子

实时播放麦克风发出的声音

我一直试图让我的应用程序录制来自麦克风的声音,然后(近似)实时播放,但是没有成功.

我分别使用AudioRecord和AudioTrack类进行录制和播放.我尝试了不同的方法,我试图记录传入的声音并将其写入文件,它工作正常.我也尝试使用AudioTrack播放该文件后的声音,它也可以正常工作.问题是当我尝试实时播放声音时,而不是在写完后读取文件.

这是代码:

//variables
private int audioSource = MediaRecorder.AudioSource.MIC;
private int samplingRate = 44100; /* in Hz*/
private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
private int bufferSize = AudioRecord.getMinBufferSize(samplingRate, channelConfig, audioFormat);
private int sampleNumBits = 16;
private int numChannels = 1;

// …

AudioRecord recorder = new AudioRecord(audioSource, samplingRate, channelConfig, audioFormat, bufferSize);
                recorder.startRecording();
                isRecording = true;

AudioTrack audioPlayer = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_MONO,
                        AudioFormat.ENCODING_PCM_16BIT, bufferSize, AudioTrack.MODE_STREAM);

if(audioPlayer.getPlayState() != AudioTrack.PLAYSTATE_PLAYING)
    audioPlayer.play();

//capture data and record to file
int …
Run Code Online (Sandbox Code Playgroud)

audio android real-time record audio-recording

31
推荐指数
1
解决办法
3万
查看次数

标签 统计

android ×1

audio ×1

audio-recording ×1

real-time ×1

record ×1