как использовать функцию Android Media Recorder getMaxAmplitude - PullRequest
1 голос
/ 27 июня 2011

Я пытаюсь запустить аудиозапись http://developer.android.com/guide/topics/media/index.html, Работает нормально, мне нужно показать максимальную амплитуду при непрерывной записи голоса. Каков наилучший подход для этого.

Ответы [ 2 ]

5 голосов
/ 11 июля 2011

Максимальная амплитуда дает максимальную амплитуду данного образца, поэтому я брал образец каждые 250 миллисекунд и рассчитывал максимальную амплитуду

public void run() {
            int i = 0;
            while(i == 0) {
                Message msg = mHandler.obtainMessage();
                Bundle b = new Bundle();
                try {
                    sleep(250);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                if (mRecorder != null) {
                    amplitude = mRecorder.getMaxAmplitude();
                    b.putLong("currentTime", amplitude);
                    Log.i("AMPLITUDE", new Integer(amplitude).toString());
                } else {
                    b.putLong("currentTime", 0);
                }
                msg.setData(b);
                mHandler.sendMessage(msg);
            }
        }

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

0 голосов
/ 04 июля 2011

Создать поток, который работает все время. В ветке сделайте так:

    int amp = mrec.getMaxAmplitude();
    if (amp > 0)
      yourcode;

Вам нужна дополнительная информация по теме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...