Форум программистов, компьютерный форум CyberForum.ru

Звуковой фильтр с использованием AudioRecord - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Загрузка желаемой картинки из файловой системы http://www.cyberforum.ru/android-dev/thread1160593.html
Привет! В общем вопрос таков. Мне необходимо реализовать загрузку изображений, то есть пользователь нажимает на кнопку, открывается проводник, дальше он лезет в нужную ему папку и указывает изображения которое необходимо загрузить... И сам вопрос. Как такое реализовать? Ну в смысле, подскажите в какую сторону искать, еще даже понятия не имею. Может кто знает библиотеки для такой работы....
Программирование Android Как отправить сообщение с андройда на пк используя WIFI Есть сервер на сокетах на пк. (к ПК подлючен роутер ну или ноут тоже есть) может ли данный сервер принимать данные от андроид устройства или необходимо использовать специальный интерфейс. Не могли бы привести пример. пример хотя бы на Java , а так желательно и на пк тоже. Сервер у меня на C#. Хотелось бы получить помощь от человека, который делал подобное. По крайней мере кодировал передачу... http://www.cyberforum.ru/android-dev/thread1160170.html
Программирование Android GetSupportLoaderManager и импорт support библиотек
Помогите разобраться, плз. Что-то с импортом библиотек, но что именно понять не могу. Все библиотеки, которые спрашивает на выбор - выбираю с "support" Хелп, плз. Строка 92 - getSupportLoaderManager() - подчеркивает красным, пишет - Cannot make a static reference to the non-static method getSupportLoaderManager() from the type FragmentActivity Делаю урок отсюда -...
Где ошибка в коде Программирование Android
package com.example.handltest; import java.util.concurrent.TimeUnit; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBarActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;
Программирование Android Синхронизация с web-server http://www.cyberforum.ru/android-dev/thread1159905.html
Дайте почитать на русском пожалуйста, желательно пару советов в реализации
Программирование Android Update в ListView BD: public void updateRec(String txt, long id) { ContentValues cv = new ContentValues(); cv.put(COLUMN_TXT, txt); mDB.update(DB_TABLE, cv, COLUMN_ID + " =? ", new String { String.valueOf(id) }); } MainActivity: подробнее

Показать сообщение отдельно
Razangann
11 / 11 / 0
Регистрация: 11.01.2013
Сообщений: 135

Звуковой фильтр с использованием AudioRecord - Программирование Android

28.04.2014, 23:25. Просмотров 945. Ответов 2
Метки (Все метки)

Здравствуйте!
Очень нужен звуковой фильтр, который бы реагировал только на резкие звуки.
Вот что есть:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Timer timer1 = new Timer();
timer1.schedule(new TimerTask() {
            @Override
            public void run() {
                detect();
            }
        }, 100, 100);
   public void detect(){
       int minSize = AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
        AudioRecord ar = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000,AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,minSize);
        boolean recorder=true;
        short[] buffer = new short[minSize];
            ar.startRecording();
            while(recorder)
            {
 
                ar.read(buffer, 0, minSize);
                for (short s : buffer)
                {
                    if (Math.abs(s) > 20000)   //DETECT VOLUME (IF I BLOW IN THE MIC)
                    {
                        timer1.cancel();
                        ar.stop();
                        recorder=false;
                        goNextStep();
                        return;
                    }
                }
            }
    }
Данная схема каждые 100мс считывает звук с микрофона, и если амплитуда превышает 20000, то он срабатывает и выполняет некую функцию goNextStep().
Проблема в том, что тут упор делается на любой громкий звук, но нужно чтобы и в громком месте срабатывало только по скачку амплитуды.
Каким методом лучше сделать?
1) Сделать динамический порог громкости, вместо 20000? Т.е. каждый раз замерять звук и выставлять это значение?
2) Создать массив, в который складывать предыдущие и следующие значения, чтобы сравнивать и искать резкое возрастание?
В итоге нужно получить что-то вроде зависимость, показанной на графике
Может кто знает/делал такое? Буду очень рад помощи!
P.S Еще немного не понятна работа функции AudioRecord.read(). Как понял она считывает и кладет значения в буфер. Когда дебажил, обнаружил, что в буфере есть отрицательные числа...как так? Вроде громкость величина положительная
Спасибо!
Миниатюры
Звуковой фильтр с использованием AudioRecord  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru