записать голос в очередь <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);

Я не хочу пропустить какие-либо данные, которые записываются.

Любая помощь будет оценена много. Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос