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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tarasyk
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 32
#1

Visualizer и сигнал с микрофона.Проблемка - Программирование Android

21.05.2013, 17:30. Просмотров 657. Ответов 0
Метки нет (Все метки)

Здравствуйте.
Столкнулся с проблемой.
Требуется написать приложение, которое будет отображать сигнал с микрофона в виде:
- wave form;
- fft form.
Клас Vizualizer имеет методы getWaveForm() и getFft().
Подписался на Visualizer.OnDataCaptureListener() и по возникновению onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate), или onFftDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate), вызываю метод прорисовки данных.
При этом обьект Vizualizer-a цепляю или по sessionid к MediaPlayer, или слушаю все системные звуки.
Всё прекрсасно работает.
Создаю экземпляр AudioRecord, запускаю запись, запись происходит корректно, звук пишется на карту памяти, но в момент записи методы getWaveForm() и getFft() не вызываются, соответственно нет событий onWaveFormDataCapture() и onFftDataCapture().
Кусок текста программы:
Java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
recorder.startRecording(); 
 
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recordFile = Environment.getExternalStorageDirectory().getAbsolutePath(); 
recordFile += "/recorder.arm"; 
recorder.setOutputFile(recordFile); 
 
setupVisualizerFxAndUI(); 
 
mVisualizer.setEnabled(true); 
 
private void setupVisualizerFxAndUI() { 
 
        waveVisualizerView = new VisualizerView(this); 
        waveVisualizerView.setLayoutParams(new ViewGroup.LayoutParams( 
                ViewGroup.LayoutParams.FILL_PARENT, 
                (int) (VISUALIZER_HEIGHT_DIP * getResources() 
                        .getDisplayMetrics().density))); 
        WaveLay.addView(waveVisualizerView); 
 
        fftVisualizerView = new VisualizerView(this); 
        fftVisualizerView.setLayoutParams(new ViewGroup.LayoutParams( 
                ViewGroup.LayoutParams.FILL_PARENT, 
                (int) (VISUALIZER_HEIGHT_DIP * getResources() 
                        .getDisplayMetrics().density))); 
        FFTLay.addView(fftVisualizerView); 
 
//        mVisualizer = new Visualizer(mp.getAudioSessionId()); 
        mVisualizer = new Visualizer(0); 
         
//        mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]); 
        mVisualizer.setCaptureSize(256); 
//        mVisualizer.setCaptureSize(bufSize); 
        mVisualizer.setDataCaptureListener( 
                new Visualizer.OnDataCaptureListener() { 
                    public void onWaveFormDataCapture(Visualizer visualizer, 
                            byte[] bytes, int samplingRate) { 
                        waveVisualizerView.updateVisualizer(bytes, false); 
                    } 
 
                    public void onFftDataCapture(Visualizer visualizer, 
                            byte[] bytes, int samplingRate) { 
                        fftVisualizerView.updateVisualizer(bytes, true); 
                    } 
                }, Visualizer.getMaxCaptureRate() / 2, true, true); 
    }
Буду благодарен любым полезным советам.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 17:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Visualizer и сигнал с микрофона.Проблемка (Программирование Android):

Visualizer.getWaveForm() что возвращает при остутствии сигнала? - Программирование Android
Там беззнаковый байт, но не написано что соответствует тишине - 0 или 128. Иначе говоря - полный размах амплитуды сигнала имеет 256 уровней...

Звук не с микрофона? - Программирование Android
Приветствую. Есть ли возможность совершить вызов с телефона передавая звуковой сигнал не с микрофона самого устройства, а потоком через...

Подмена потока с микрофона - Программирование Android
Нужно подменипть поток с микрофона, чтобы отправить его при разговоре. Типа диалер, который вместо звука с микрофона будет пускать другой...

Использование микрофона в фоне - Программирование Android
Добрый день, уважаемые программисты. Суть: Есть приложение, пишет фоном с микрофона. Если мне не изменяют мои знания, микрофон в...

Запрет использования микрофона - Программирование Android
Как организовать запрет использования микрофона. У меня есть приложение, в нем есть видеозапись, я не хочу, чтобы ее можно было записать...

Записать массив байтов с микрофона - Программирование Android
Всем привет! Возникла проблема, никак не могу придумать такую штуку, допустим, имеется небольшое приложение, две кнопки: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 17:30
Привет! Вот еще темы с ответами:

Как записать аудио с микрофона и воспроизвести? - Программирование Android
Я хочу записывать с микрофона запись в буфер с помощью AudioRecorder и воспроизвести с помощью AudioTrack, но ничего не воспроизводится. В...

Android studio определение громкости микрофона - Программирование Android
Android Studio. Нужно определить когда юзер дует в микрофон, в документации функций определения громкости микрофона не нашел. Как это...

Как на java получить с микрофона звук во flac формате? - Программирование Android
Как на java получить с микрофона звук во flac формате?

WiFi рация (перекидывать с микрофона одного устройства на динамик другого) - Программирование Android
Гуру, не подскажите, доступны ли подобные исходники? На гитхабе обычным поиском не нашел... Но на маркете куча подобных программ. Надо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru