записать голос в очередь <byte []> и отправить его на сервер
Я занимаюсь разработкой голосового приложения.
Мне нужна какая-то очередь в буфере, чтобы я непрерывно записывал в поток, помещал в очередь буферы, заполненные байтами, и передавал их на сервер, а я беру следующий буфер из очереди.
Вот код записи:
Queue qArray = new LinkedList();
recordingThread = new Thread(new Runnable() {
@Override
public void run() {
bData = new byte[BufferElements];
while (isRecording) {
recorder.read(bData, 0, BufferElements);
qArray.add(bData);
if (AudioRecord.ERROR_INVALID_OPERATION != 0) {
SendAudio();
}
}
}
}, "AudioRecorder Thread");
recordingThread.start();
Но все же отсутствуют некоторые байты [] данных при отправке на сервер
Вот отправка голоса на код сервера:
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(ServerUrl.url_audio);
// Json Format
JSONObject holder = new JSONObject();
JSONArray jArray = new JSONArray();
try {
byte[] tmparr = qArray.poll();
for (int i = 0; i < tmparr.length; i++) {
jArray.put(i, tmparr[i]);
}
holder.put("Voice", jArray);
Я не хочу пропустить какие-либо данные, которые записываются.
Любая помощь будет оценена много. Спасибо