AudioRecord sınıfını kullanarak bazı sorunlar yaşıyorum. Kayıtlı verileri bir tamponda saklamak istiyorum, ancak bunu başarmanın doğru yolu olduğundan emin değilim. Çok sayıda örnekle karşılaştım, ancak çoğu bir çok farklı yaklaşımı temsil ediyor. Basit bir veya basit açıklama arıyorum. kısa .read kullanmak gerekiyordu yaşıyorum (:AudioRecord - veri arabelleğe nasıl alınır?
int audioSource = AudioSource.MIC;
int sampleRateInHz = 8000;
int channelConfig = AudioFormat.CHANNEL_IN_MONO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat);
short[] buffer = new short[bufferSizeInBytes];
AudioRecord audioRecorder = new AudioRecord(audioSource,
sampleRateInHz,
channelConfig,
audioFormat,
bufferSizeInBytes);
Ben
public void Recording() {
audioRecorder.startRecording();
...
audioRecorder.stop();
audioRecorder.release();
}
Ben bunu biliyorum bir kayıt fonksiyonu oluşturmak için çalışıyorum: '' Burada
Projem için benim ses ayarları [] audioData, int ofsetInShorts, int sizeInShorts) işlevi. Ve işte sorunum başlıyor. AudioData arabelleğinin nasıl çalıştığından emin değilim - fonksiyonun kaydedilmiş örnekleri audioData'ya koyduğunu farzediyorum. Tamamen verilerle doluysa ne olur? En erken pozisyondan yeniden yazmaya başlar mı? Eğer varsa, toplanan tüm örnekleri başka bir yere kopyalamam gerektiğine inanıyorum. Başka bir soru ortaya çıkarır - .read (...) işlev arabelleğinin dolu olup olmadığını nasıl kontrol edebilirim? Zaman ve arabellek içeriğini kopyalamam gerekiyor mu yoksa buna ulaşmak için başka bir yol var mı? Ayrıca tüm kayıt işlemi için bir iş parçacığı oluşturmam gerekiyor mu?
sorularınıza bir konu :)
** qArray ** burada nedir? – OnePunchMan
arraylist olabilir. Ben şimdi hatırlamadım. Bu örneğe başvurmak daha iyidir http://stackoverflow.com/questions/8499042/android-audiorecord-example/13487250#13487250 –