Android - 录音 - 采样率

Posted

技术标签:

【中文标题】Android - 录音 - 采样率【英文标题】:Android - Audio Record - Sample rates 【发布时间】:2014-02-20 15:48:19 【问题描述】:

我为 android 开发了一个游戏,它使用 Audio Record 来获取麦克风输入。

你可以看一眼https://play.google.com/store/apps/details?id=fixappmedia.micro

问题是我正在使用以下函数来获取手机上可用的采样率:

public int getValidSampleRates() 
            int r=8000;
            for (int rate : new int[] 8000,11025,16000,22050,44100)   // add the rates you wish to check against
                int bufferSize = AudioRecord.getMinBufferSize(rate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
                if (bufferSize > 0) 
                    r= rate;
                
            
            return r;
        

我最初在我的手机 (Samsung Galaxy Vibrant) 上对其进行了测试,效果很好……但今天我在三星 Galaxy Ace 上对其进行了测试,但采样率不起作用……

有什么想法吗?

【问题讨论】:

当我调用 recorder = new AudioRecord (MediaRecorder.Audiosource.MIC,rate,AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT,bufferSize);使用前一个函数给出的速率,它会抛出一个错误......我这里没有确切的错误......但问题是它没有记录任何东西...... @progjose 您应该查看 Logcat 以获取有关您的错误的更多信息。重要的是要知道记录器实例是否为“null”(这意味着您正在使用不受支持的采样率或通道)或者记录器实例是否在内部未初始化(并且您的代码应该在调用 startRecording() 时抛出 IllegalStateException ..) .一旦你知道导致你的应用程序崩溃的异常,你就会有不同的解决方案。采用。 【参考方案1】:

我是录音应用(Hi-Q MP3 Voice Recorder)的开发者,我发现所有手机都支持 44100 Hz、48000 Hz 或两者。

查看您的代码,您错过了 48000。

【讨论】:

谢谢,我会试试那个采样率。我希望它能解决它。干杯! 嗨@yuku。我试图让 AudioRecord 在 Nexus 5 上工作,但我遇到了一个问题:AudioRecord 被实例化,但它处于错误的内部状态,实际上当我在其上调用 startRecording() 时抛出了 IllegalStateException。有什么建议吗?【参考方案2】:

来自文档http://developer.android.com/reference/android/media/AudioRecord.html

以赫兹表示的采样率。 44100Hz 是目前唯一保证适用于所有设备的频率,但其他频率(例如 22050、16000 和 11025)可能适用于某些设备。

还注意到您正在使用 AudioFormat.CHANNEL_CONFIGURATION_MONO 根据文档 http://developer.android.com/reference/android/media/AudioFormat.html 已弃用

此常量在 API 级别 5 中已弃用。请改用 CHANNEL_OUT_MONO 或 CHANNEL_IN_MONO

祝你好运

【讨论】:

以上是关于Android - 录音 - 采样率的主要内容,如果未能解决你的问题,请参考以下文章

tc397can的采样率怎么设置

音频中采样位数,采样率,比特率的名词解释(转)

更改 AudioContext (getUserMedia) 的采样率

将任意音频格式文件转换成16K采样率16bit的wav文件

在 iOS 中以不同的采样率同时录制和播放

如何设置文本到语音的采样率 - Android