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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
WhiteMeanWhite
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 33
#1

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

25.04.2013, 16:44. Просмотров 2308. Ответов 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;
        }
 
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 16:44     Как записать аудио с микрофона и воспроизвести?
Посмотрите здесь:
Воспроизвести аудио по интернет-ссылке Android
Как записать потоковое аудио из интернета Android
Как записать аудио поток в файл Android
Записать массив байтов с микрофона Android
Как можно воспроизвести видео Android
Как воспроизвести потоковое видео, можно ли? Basic4Android
Как воспроизвести фоновый звой звук при разговоре по телефону? Android
Как на java получить с микрофона звук во flac формате? Android
Как отследить момент окончания аудио в SoundPool? Android
MediaPlayer: как продолжить работу аудио-плеера в фоновом режиме? Android
Android Как получить стерео-звук с выхода аудио-микшера или музыкальный поток?
Воспроизвести звук Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WhiteMeanWhite
1 / 1 / 0
Регистрация: 30.01.2013
Сообщений: 33
25.04.2013, 17:06  [ТС]     Как записать аудио с микрофона и воспроизвести? #2
Как записать звук с микрофона в буфер и воспроизвести? И как записать его потом в файл с форматом flac?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 19:04     Как записать аудио с микрофона и воспроизвести? #3
http://developer.android.com/guide/t...o-capture.html
Ответ Создать тему
Опции темы

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