【问题标题】:Record audio loops through sample rates?通过采样率记录音频循环?
【发布时间】:2013-04-01 10:06:06
【问题描述】:

我正在尝试阅读和理解 Android 中的音频。在我的搜索中,我找到了this article。在这里,他编写了一个以 wav 格式录制音频的代码。但是有一点我不是很明白,那就是他code的第一个循环:

public class ExtAudioRecorder 
{
    private final static int[] sampleRates = {44100, 22050, 11025, 8000};

    public static ExtAudioRecorder getInstanse(Boolean recordingCompressed)
    {
        ExtAudioRecorder result = null;

        if(recordingCompressed)
        {
            result = new ExtAudioRecorder(  false, 
                                            AudioSource.MIC, 
                                            sampleRates[3], 
                                            AudioFormat.CHANNEL_CONFIGURATION_MONO,
                                            AudioFormat.ENCODING_PCM_16BIT);
        }
        else
        {
            int i=0;
            do
            {
                result = new ExtAudioRecorder(  true, 
                                                AudioSource.MIC, 
                                                sampleRates[i], 
                                                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                                                AudioFormat.ENCODING_PCM_16BIT);

            } while((++i<sampleRates.length) & !(result.getState() == ExtAudioRecorder.State.INITIALIZING));
        }
        return result;

他提供了一些关于它的基本信息,但我不完全明白这一点。这和不同类型安卓设备的性能有关系吗?无论如何,希望有人可以为我照亮这个:)

【问题讨论】:

    标签: android audio record rate


    【解决方案1】:

    他正在尝试用不同的采样率初始化录音机,从这些 {44100, 22050, 11025, 8000}。

    根据底层硬件,设备可能不支持所有采样率。

    虽然文档说:

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

    我认为作者已经编写了代码以确保如果以某个采样率初始化失败,则尝试以其他采样率进行初始化,除非初始化成功,这是由他在进行的检查中给出的循环条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-18
      • 2015-07-06
      • 2017-03-04
      • 2014-02-20
      • 2011-01-06
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多