print (pcm_in) покажет вам фактические данные. вам нужно получить данные pcm_in в pcm в цикле, пока вы не остановите запись.
Это означает, что ваша переменная запись является логическим правом. и вы сделаете это ложным в другом методе. поэтому, пока вы не установите его в ложное состояние, операция Recorder.read (pcm_in, 0, pcm_in.length) будет получать данные с вашего микрофона и помещать их в pcm_in (поэтому вы должны быть уверены, что размер pcm_in равен pcm). bytes_read будет размером байтов, прочитанных в этой операции. так что вы можете скопировать байты pcm_in в pcm в цикле, который может считывать все данные pcm_in.
например:
bytes_read = recorder.read(pcm_in, 0, pcm_in.length);
for(int i=0; i<bytes_read ;i++){
pcm[i] = pcm_in[i];
}
Но это странное использование. Я думаю, что ваш PCM должен быть таким же большим, как файл, который вам нужно загрузить в него. и убедитесь, что вы добавляете pcm_in к нему, а не переопределяете. Я думаю, что это то, что вы хотите.