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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Ориентация экрана http://www.cyberforum.ru/android-dev/thread872789.html
Здравствуйте!Хотелось бы услышать совета знающих людей:) Имеется Активити с открытой БД и Курсором...Необходимо сделать так, что бы при изменении ориентации экрана не вызывался метод onCreate(),...
Программирование Android Потоковое видео Есть видеопоток(RTP), зашифрован по h.263, который приходит на конкретный порт по UDP протоколу. Как можно воспроизвести этот видеопоток в своем приложении? http://www.cyberforum.ru/android-dev/thread872729.html
Программирование Android Наименование классов (GameView)
интересует, это основной класс во всех приложениях? есть смысл менять название или всегда по умолчанию такое название.. поясните
Ошибка в методе onBackPressed Программирование Android
почему красным выделяется? подскажите кому не трудно :) p.s для остановки музыки после закрытия приложения Добавлено через 8 минут http://pictures4me.3dn.ru/_ph/2/2/237459971.jpg
Программирование Android Отрисовоку выводит за ошибку почему? http://www.cyberforum.ru/android-dev/thread872557.html
проблема, должно выводится кол-во попаданий и процент и т .д но почему то пейнт выводит за ошибку в чем может быть причина?
Программирование Android Выравнивание Помогите выровнять.. чегото не выходит, уже кучу способов перебрал <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" ... подробнее

Показать сообщение отдельно
Tarasyk
0 / 0 / 0
Регистрация: 05.09.2010
Сообщений: 32

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

21.05.2013, 17:30. Просмотров 689. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru