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

Записать массив байтов с микрофона - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Работа с gps http://www.cyberforum.ru/android-dev/thread1128716.html
помогите пожалуйста! как получать скорость с помощью gps?
Программирование Android Структура файловой системы Андройд -где что? Приветствую всех, продолжаю свое изучение Андройда: время для файловой системы (иначе просто не могу понять - куда создаваемый файл писать). И хотя я часто использую Убунту, файловая структура Линукса, тем более Андройда - мне почти не знакома. Установил Х-plore (на КитКэт) и не увидел в нем ничего кроме вопросов: 1) почему директория /storage/emulated/o - содержит то же что и что... http://www.cyberforum.ru/android-dev/thread1128627.html
Как можно в progressBar вернуть прогресс нужного потока? Программирование Android
На разных фрагментах(экранах) начинаю скачку файла и именно на лаяуте располагается progressBar, при переходе с экрана на экран progressBar теряет свой прогресс и не виден ход загрузки файла. Одновременно можно качать файлы на разных экранах. Как можно в progressBar вернуть прогресс нужного потока, ведь в фоне они работают?
Написание игры Программирование Android
Как можно реализовать игру. Выложил в приложении фрагментик.
Программирование Android Получение данных из другого класса http://www.cyberforum.ru/android-dev/thread1128156.html
Подскажите как решить проблему. У меня есть два класса разнесенных по разным файлам: ListFragment и DialogFragment. Cуть проблемы в следующем: В ListFragment отображается список и есть view элемент, по нажатию на который, отображается диалог содержащий GridView, по нажатию на элемент которого, содержимое этого элемента нужно вернуть в ListFragment. Я в упор не понимаю как можно...
Программирование Android по многопоточности У меня есть анимация переходов... я её применил на боди и футер так сказать.. как сделать чтобы этот код выполнялся синхронно? public void imgRightNext(){ if (poz < CustomAdapter.allItems.size() - 1){ poz ++; populateFields(poz); txtSubItemNote.setText(String.valueOf(poz + 1)); note.startAnimation(animationFlipOut); ... подробнее

Показать сообщение отдельно
Nachinka
11 / 11 / 0
Регистрация: 19.02.2014
Сообщений: 95
26.03.2014, 13:50  [ТС]
Спасибо, verylazy!

Вот такие теперь логи выдает:

Bash
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
03-26 09:46:28.005: D/TAG(798): minInternalBufferSize = 640, internalBufferSize = 2560, myBufferSize = 8192
03-26 09:46:32.335: D/TAG(798): record start
03-26 09:46:32.335: D/TAG(798): recording...
03-26 09:46:32.395: D/TAG(798): readCount = 2560, totalCount = 2560
03-26 09:46:32.395: D/TAG(798): lenght: 8192
03-26 09:46:32.405: D/TAG(798): data1: 0
03-26 09:46:32.405: D/TAG(798): data2: 0
03-26 09:46:32.495: D/TAG(798): readCount = 2560, totalCount = 5120
03-26 09:46:32.495: D/TAG(798): lenght: 8192
03-26 09:46:32.495: D/TAG(798): data1: -4
03-26 09:46:32.495: D/TAG(798): data2: -1
03-26 09:46:32.568: D/TAG(798): readCount = 2560, totalCount = 7680
03-26 09:46:32.568: D/TAG(798): lenght: 8192
03-26 09:46:32.568: D/TAG(798): data1: 102
03-26 09:46:32.568: D/TAG(798): data2: 0
03-26 09:46:32.715: D/TAG(798): readCount = 2560, totalCount = 10240
03-26 09:46:32.715: D/TAG(798): lenght: 8192
03-26 09:46:32.715: D/TAG(798): data1: -113
03-26 09:46:32.715: D/TAG(798): data2: -1
03-26 09:46:32.857: D/TAG(798): readCount = 2560, totalCount = 12800
03-26 09:46:32.857: D/TAG(798): lenght: 8192
03-26 09:46:32.865: D/TAG(798): data1: -22
03-26 09:46:32.865: D/TAG(798): data2: -1
03-26 09:46:32.865: D/TAG(798): readCount = 2560, totalCount = 15360
03-26 09:46:32.865: D/TAG(798): lenght: 8192
03-26 09:46:32.865: D/TAG(798): data1: 21
03-26 09:46:32.865: D/TAG(798): data2: 0
03-26 09:46:33.011: D/TAG(798): readCount = 2560, totalCount = 17920
03-26 09:46:33.011: D/TAG(798): lenght: 8192
03-26 09:46:33.015: D/TAG(798): data1: 100
03-26 09:46:33.015: D/TAG(798): data2: 0
03-26 09:46:33.085: D/TAG(798): readCount = 2560, totalCount = 20480
03-26 09:46:33.085: D/TAG(798): lenght: 8192
03-26 09:46:33.085: D/TAG(798): data1: 45
03-26 09:46:33.085: D/TAG(798): data2: 0
03-26 09:46:33.235: D/TAG(798): readCount = 2560, totalCount = 23040
03-26 09:46:33.235: D/TAG(798): lenght: 8192
03-26 09:46:33.235: D/TAG(798): data1: 7
03-26 09:46:33.235: D/TAG(798): data2: 0
03-26 09:46:33.307: D/TAG(798): readCount = 2560, totalCount = 25600
03-26 09:46:33.307: D/TAG(798): lenght: 8192
03-26 09:46:33.307: D/TAG(798): data1: 22
03-26 09:46:33.315: D/TAG(798): data2: 0
03-26 09:46:33.385: D/TAG(798): readCount = 2560, totalCount = 28160
03-26 09:46:33.385: D/TAG(798): lenght: 8192
03-26 09:46:33.385: D/TAG(798): data1: 2
03-26 09:46:33.395: D/TAG(798): data2: 0
03-26 09:46:33.465: D/TAG(798): readCount = 2560, totalCount = 30720
03-26 09:46:33.465: D/TAG(798): lenght: 8192
03-26 09:46:33.465: D/TAG(798): data1: 2
03-26 09:46:33.465: D/TAG(798): data2: 0
03-26 09:46:33.545: D/TAG(798): readCount = 2560, totalCount = 33280
03-26 09:46:33.545: D/TAG(798): lenght: 8192
03-26 09:46:33.545: D/TAG(798): data1: 1
03-26 09:46:33.545: D/TAG(798): data2: 0
03-26 09:46:33.615: D/TAG(798): readCount = 2560, totalCount = 35840
03-26 09:46:33.615: D/TAG(798): lenght: 8192
03-26 09:46:33.615: D/TAG(798): data1: 1
03-26 09:46:33.615: D/TAG(798): data2: 0
03-26 09:46:33.695: D/TAG(798): readCount = 2560, totalCount = 38400
03-26 09:46:33.695: D/TAG(798): lenght: 8192
03-26 09:46:33.695: D/TAG(798): data1: 4
03-26 09:46:33.695: D/TAG(798): data2: 0
03-26 09:46:33.766: D/TAG(798): readCount = 2560, totalCount = 40960
03-26 09:46:33.766: D/TAG(798): lenght: 8192
03-26 09:46:33.766: D/TAG(798): data1: 0
03-26 09:46:33.766: D/TAG(798): data2: 0
03-26 09:46:33.911: D/TAG(798): readCount = 2560, totalCount = 43520
03-26 09:46:33.911: D/TAG(798): lenght: 8192
03-26 09:46:33.915: D/TAG(798): data1: 0
03-26 09:46:33.915: D/TAG(798): data2: 0
03-26 09:46:33.915: D/TAG(798): readCount = 2560, totalCount = 46080
03-26 09:46:33.915: D/TAG(798): lenght: 8192
03-26 09:46:33.925: D/TAG(798): data1: 0
03-26 09:46:33.925: D/TAG(798): data2: 0
03-26 09:46:34.135: D/TAG(798): readCount = 2560, totalCount = 48640
03-26 09:46:34.135: D/TAG(798): lenght: 8192
03-26 09:46:34.135: D/TAG(798): data1: 0
03-26 09:46:34.135: D/TAG(798): data2: 0
03-26 09:46:34.285: D/TAG(798): readCount = 2560, totalCount = 51200
03-26 09:46:34.285: D/TAG(798): lenght: 8192
03-26 09:46:34.285: D/TAG(798): data1: -5
03-26 09:46:34.285: D/TAG(798): data2: -1
03-26 09:46:34.357: D/TAG(798): readCount = 2560, totalCount = 53760
03-26 09:46:34.357: D/TAG(798): lenght: 8192
03-26 09:46:34.357: D/TAG(798): data1: -81
03-26 09:46:34.357: D/TAG(798): data2: -1
03-26 09:46:34.435: D/TAG(798): readCount = 2560, totalCount = 56320
03-26 09:46:34.435: D/TAG(798): lenght: 8192
03-26 09:46:34.435: D/TAG(798): data1: 45
03-26 09:46:34.435: D/TAG(798): data2: 0
03-26 09:46:34.515: D/TAG(798): readCount = 2560, totalCount = 58880
03-26 09:46:34.515: D/TAG(798): lenght: 8192
03-26 09:46:34.515: D/TAG(798): data1: -2
03-26 09:46:34.515: D/TAG(798): data2: -1
03-26 09:46:34.515: D/TAG(798): readCount = 2560, totalCount = 61440
03-26 09:46:34.515: D/TAG(798): lenght: 8192
03-26 09:46:34.525: D/TAG(798): data1: 2
03-26 09:46:34.525: D/TAG(798): data2: 0
03-26 09:46:34.668: D/TAG(798): readCount = 2560, totalCount = 64000
03-26 09:46:34.668: D/TAG(798): lenght: 8192
03-26 09:46:34.668: D/TAG(798): data1: 2
03-26 09:46:34.668: D/TAG(798): data2: 0
03-26 09:46:34.745: D/TAG(798): readCount = 2560, totalCount = 66560
03-26 09:46:34.745: D/TAG(798): lenght: 8192
03-26 09:46:34.745: D/TAG(798): data1: -1
03-26 09:46:34.745: D/TAG(798): data2: -1
03-26 09:46:34.887: D/TAG(798): readCount = 2560, totalCount = 69120
03-26 09:46:34.887: D/TAG(798): lenght: 8192
03-26 09:46:34.895: D/TAG(798): data1: 1
03-26 09:46:34.895: D/TAG(798): data2: 0
03-26 09:46:34.895: D/TAG(798): readCount = 2560, totalCount = 71680
03-26 09:46:34.895: D/TAG(798): lenght: 8192
03-26 09:46:34.895: D/TAG(798): data1: -2
03-26 09:46:34.895: D/TAG(798): data2: -1
03-26 09:46:35.044: D/TAG(798): readCount = 2560, totalCount = 74240
03-26 09:46:35.044: D/TAG(798): lenght: 8192
03-26 09:46:35.044: D/TAG(798): data1: -1
03-26 09:46:35.044: D/TAG(798): data2: -1
03-26 09:46:35.119: D/TAG(798): readCount = 2560, totalCount = 76800
03-26 09:46:35.119: D/TAG(798): lenght: 8192
03-26 09:46:35.125: D/TAG(798): data1: 1
03-26 09:46:35.125: D/TAG(798): data2: 0
03-26 09:46:35.265: D/TAG(798): readCount = 2560, totalCount = 79360
03-26 09:46:35.265: D/TAG(798): lenght: 8192
03-26 09:46:35.265: D/TAG(798): data1: 1
03-26 09:46:35.265: D/TAG(798): data2: 0
03-26 09:46:35.410: D/TAG(798): readCount = 2560, totalCount = 81920
03-26 09:46:35.410: D/TAG(798): lenght: 8192
03-26 09:46:35.415: D/TAG(798): data1: -7
03-26 09:46:35.415: D/TAG(798): data2: -1
03-26 09:46:35.495: D/TAG(798): readCount = 2560, totalCount = 84480
03-26 09:46:35.495: D/TAG(798): lenght: 8192
03-26 09:46:35.515: D/TAG(798): data1: 24
03-26 09:46:35.515: D/TAG(798): data2: 0
03-26 09:46:35.515: D/TAG(798): readCount = 2560, totalCount = 87040
03-26 09:46:35.515: D/TAG(798): lenght: 8192
03-26 09:46:35.515: D/TAG(798): data1: 35
03-26 09:46:35.515: D/TAG(798): data2: -1
03-26 09:46:35.525: D/TAG(798): stop recorder
03-26 09:46:35.525: D/TAG(798): record stop!
03-26 09:46:35.575: D/TAG(798): readCount = 0, totalCount = 87040
03-26 09:46:35.585: D/TAG(798): lenght: 8192
03-26 09:46:35.585: D/TAG(798): data1: 35
03-26 09:46:35.585: D/TAG(798): data2: -1
Ну и вот такой код:
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
101
102
103
104
105
106
107
108
109
110
111
112
113
import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class MainActivity extends Activity implements OnClickListener {
 
    Button start_button;
    Button stop_button;
    boolean reading = false;
    final String TAG = "TAG";
    int myBufferSize = 8192;
    AudioRecord audioRecord;
    private Thread recordingThread = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        start_button = (Button) findViewById(R.id.button1);
        stop_button = (Button) findViewById(R.id.button2);
        start_button.setOnClickListener(this);
        stop_button.setOnClickListener(this);
        createAudioRecorder();
    }
 
    private void createAudioRecorder() {
        int sampleRate = 16000;
        int channelConfig = AudioFormat.CHANNEL_IN_MONO;
        int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
 
        int minInternalBufferSize = AudioRecord.getMinBufferSize(sampleRate,
                channelConfig, audioFormat);
        int internalBufferSize = minInternalBufferSize * 4;
        Log.d(TAG, "minInternalBufferSize = " + minInternalBufferSize
                + ", internalBufferSize = " + internalBufferSize
                + ", myBufferSize = " + myBufferSize);
 
        audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                sampleRate, channelConfig, audioFormat, internalBufferSize);
    }
 
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
            Log.d(TAG, "record start");
            reading = true;
            startRecorder();
            break;
        case R.id.button2:
            Log.d(TAG, "stop recorder");
            reading = false;
            stopRecorder();
            break;
        }
    }
 
    private void startRecorder() {
        Log.d(TAG, "recording...");
        recordingThread = new Thread(new Runnable() {
 
            @Override
            public void run() {
                AudioData();
            }
        }, "AudioRecorder Thread");
 
        recordingThread.start();
    }
 
    protected void AudioData() {
        audioRecord.startRecording();
        byte data[] = new byte[myBufferSize];
        byte[] myBuffer = new byte[myBufferSize];
        int readCount = 0;
        int totalCount = 0;
        while (reading) {
            readCount = audioRecord.read(myBuffer, 0, myBufferSize);
            data = myBuffer;
            totalCount += readCount;
            Log.d(TAG, "readCount = " + readCount + ", totalCount = "
                    + totalCount);
            Log.d(TAG, "lenght: " + data.length);
            Log.d(TAG, "data1: " + data[0]);
            Log.d(TAG, "data2: " + data[1]);
        }
    }
 
    private void stopRecorder() {
        Log.d(TAG, "record stop!");
        // audioRecord.stop();
        if (null != audioRecord) {
            reading = false;
            audioRecord.stop();
            audioRecord.release();
            audioRecord = null;
            recordingThread = null;
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}
Уху, спасибо!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru