Записывать звуковые петли через частоты дискретизации?

Я пытаюсь читать и понимать аудио в Android. В поисках я наткнулся на эту статью. Здесь он написал код для записи аудио в формате wav. Но есть одна вещь, которую я не совсем понимаю, и это первый цикл его код:

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-устройств? В любом случае, надеюсь, что кто-то может скрасить это для меня :)


person Matthias Vanb    schedule 01.04.2013    source источник


Ответы (1)


Он пытается инициализировать диктофон с разными частотами дискретизации, из этих {44100, 22050, 11025, 8000}.

В зависимости от базового оборудования не все частоты дискретизации могут поддерживаться устройством.

Хотя в документации написано:

"В настоящее время 44 100 Гц — единственная частота, которая гарантированно работает на всех устройствах, но на некоторых устройствах могут работать и другие частоты, например 22 050, 16 000 и 11 025".

Я думаю, что автор написал код, чтобы убедиться, что если инициализация с частотой дискретизации не удалась, будет предпринята попытка инициализации с какой-то другой частотой дискретизации, если только инициализация не будет успешной, что дается проверкой, которую он делает в условии цикла .

person Sumeet Khullar    schedule 01.04.2013