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

Как записать аудио с микрофона и воспроизвести? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android что за ошибка? http://www.cyberforum.ru/android-dev/thread848279.html
Здравствуйте..подскажите, что за ошибка?...ни чего не изменял..ни с того ни с сего вылезла такая ошибка и часть текста превратилась в каракули
Android Наполнение spinner'а данными с файла как реализовать чтобы спинер заполнялся с локального файла. В файле есть данные например "дерево 4, железо 7, бетон 9" выбираем например дерево спинер показывает не само слова дерево а "4". и еще где можно хранить этот файл? http://www.cyberforum.ru/android-dev/thread848159.html
Android Выбор лэйаута
какой лэйаут выбрать чтобы мой клав выглядел не так один за другой а так
Соединённые кнопки и несколько выводимых значений в ListView Android
Здравствуйте. Во время написания моей первой программы на Android у меня возникла пара вопросов касательно возможностей. Первый вопрос, как сгруппировать несколько кнопок в одну, разделяя их чем-либо, как, например, в ES Проводнике (скрин прикрепил). Второй вопрос, можно ли в ListView сделать несколько выводимых значений для каждого элемента списка. Чтобы выглядело примерно так, как на втором...
Android HeaderView в ListView http://www.cyberforum.ru/android-dev/thread847808.html
View hv = ...; listView.addHeaderView(hv); таким образом создают заголовок в listview. обьясните каким образом можно создать View? это класс наследующийся от View? или нет?
Android Оповещение при звонке Добрый вечер Возможно ли сделать так чтобы после того как пользователь отвечал на звонок или к примеру приходило смс, выполнялось какое то событие генерируемое приложением (например какое то сообщение появлялось на экране) ? подробнее

Показать сообщение отдельно
WhiteMeanWhite
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 33

Как записать аудио с микрофона и воспроизвести? - Android

25.04.2013, 16:44. Просмотров 2228. Ответов 2
Метки (Все метки)

Я хочу записывать с микрофона запись в буфер с помощью AudioRecorder и воспроизвести с помощью AudioTrack, но ничего не воспроизводится. В чем ошибка?
Код MainActivity
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
public class MainActivity extends Activity {
    
    private Audio aud;
    EditText texxt;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        texxt = (EditText) findViewById(R.id.editText1);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    public void click(View v) {
         aud = new Audio();
         aud.run();
    }
    
    public void stop(View v) {
    }
    
    private class Audio extends Thread
    { 
        private boolean stopped = false;
 
        /**
         * Give the thread high priority so that it's not canceled unexpectedly, and start it
         */
        private Audio()
        { 
            android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
            start();
        }
 
        @Override
        public void run()
        { 
            Log.i("Audio", "Running Audio Thread");
            AudioRecord recorder = null;
            AudioTrack track = null;
            short[][]   buffers  = new short[256][160];
            int ix = 0;
 
            /*
             * Initialize buffer to hold continuously recorded audio data, start recording, and start
             * playback.
             */
            try
            {
                int N = AudioRecord.getMinBufferSize(8000,AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_16BIT);
                recorder = new AudioRecord(AudioSource.MIC, 8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, N*10);
                track = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, 
                        AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, N*10, AudioTrack.MODE_STREAM);
                recorder.startRecording();
                short[] buff = new short[256];
                recorder.read(buff, 0, N);
                track.write(buff, 0, buff.length);
                track.play();
                texxt.setText("");
                for (int i=0; i<buff.length; i++){
                    texxt.setText(texxt.getText() + " " + buff.toString());
                }
                /*
                 * Loops until something outside of this thread stops it.
                 * Reads the data from the recorder and writes it to the audio track for playback.
                 */
                
            }
            catch(Throwable x)
            { 
                Log.w("Audio", "Error reading voice audio", x);
            }
            /*
             * Frees the thread's resources after the loop completes so that it can be run again
             */
            finally
            { 
                recorder.stop();
                recorder.release();
                track.stop();
                track.release();
            }
        }
 
        /**
         * Called from outside of the thread in order to stop the recording/playback loop
         */
        private void close()
        { 
             stopped = true;
        }
 
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru