android - 无法让MediaRecorder以高采样率进行录制

标签 android audio mediarecorder

对于一个项目,我需要制作一个Android应用程序以高采样率(例如,每毫秒10个采样)记录声音幅度
由于某种原因,应用程序的输出仅每10毫秒或更短的时间就返回一次样本。

mediaRecorder=new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setAudioEncodingBitRate(128000);
mediaRecorder.setAudioSamplingRate(96000);
mediaRecorder.setOutputFile(AudioSavePathInDevice);

我通过存储时间和幅度数据确定了这一点。

我存储了幅度数据和时间数据
final Runnable updateSoundLevel = new Runnable() {
@Override
public void run() {
    if (SoundRecording==true){
    handler.postDelayed(this, 0);

    Amplitude = mediaRecorder.getMaxAmplitude();
    longTime= (System.nanoTime()-startTime)/1000000;
    int intTime=(int) longTime;
    listAmplitude.add(Amplitude);
    listTime.add(intTime);
    addEntry(intTime,Amplitude); // adding entry to graph
    ... rest of program

最佳答案

我发现了错误,

向我的图表添加条目的过程太长。

关于android - 无法让MediaRecorder以高采样率进行录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535926/

相关文章:

java - Android NFC Intent 不是 "called"

audio - 回声音效

java - 使用混音器混合两个音频文件

android - 如何在 TextureView 上使用相机预览录制视频

ios - 我可以在我的 iOS 应用程序中使用实验性 WebKit 功能吗?

Android 浏览器超时 Ajax 请求

android - 多屏ListView中如何给ImageView设置宽度

java - Android 谷歌放置 API REQUEST_DENIED

java - 如何在 Java (Android) 中生成正弦扫频

java - 如何从“设置” Activity 中的“主要 Activity ”访问方法?