Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tarasyk
1 / 1 / 1
Регистрация: 05.09.2010
Сообщений: 32
1

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

21.05.2013, 17:30. Просмотров 751. Ответов 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.getWaveForm() что возвращает при остутствии сигнала?
Там беззнаковый байт, но не написано что соответствует тишине - 0 или 128....

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

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

Запрет использования микрофона
Как организовать запрет использования микрофона. У меня есть приложение, в нем...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 17:30

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

Как записать аудио с микрофона и воспроизвести?
Я хочу записывать с микрофона запись в буфер с помощью AudioRecorder и...

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


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

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

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