2011-04-17 15 views

cevap

20

Android'de ses kaydetmek kolaydır. Yapmanız gereken şey geçerli:

1) medya rekor sınıf için nesne oluşturun: MediaRecorder recorder = new MediaRecorder();

2) emülatörü olarak bunu saklamak zorunda, sen bellekte kaydedilen verileri saklamak edemiyoruz SD Kartta. Bu nedenle, önce SD Kart kullanılabilirliğini kontrol edin: ardından aşağıdaki kodla kayıt yapmaya başlayın.

String status = Environment.getExternalStorageState(); 
if(status.equals("mounted")){ 
    String path = your path; 
} 

recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.setOutputFile(path); 
recorder.prepare(); 
recorder.start(); 

3) , ben android.but nasılsa onun yalnızca stereo wav dosyası kaydı wav dosyası kaydetmeye çalıştı olsaydı aktivite

recorder.stop(); 
recorder.release(); 
+0

Uygulamamı emülatörden test ediyorum. Yani sesi emülatörden kaydetmek mümkün mü? lütfen bana yardımcı olun. –

+0

Hayır öyle değil. Fiziksel bir android cihaza ihtiyacınız var. – Mob

+0

Aşağıdaki MediaRecorder sorusuyla ilgili düşüncelerini paylaşan herkes olabilir. Gerçekten takdir edecekler. http://stackoverflow.com/q/32715573/1053097 – muneikh

3

İşte örnek kod ile iyi bir öğretici.

Audio Capture at Android Developer

o adımları içerir:

  • android.media.MediaRecorder yeni bir örneğini oluşturun.
  • MediaRecorder.setAudioSource() öğesini kullanarak ses kaynağını ayarlayın. MediaRecorder.AudioSource.MIC kullanmak isteyeceksiniz.
  • MediaRecorder.setOutputFormat() öğesini kullanarak çıktı dosyası formatını ayarlayın.
  • Ortam dosyası adını MediaRecorder.setOutputFile() kullanarak ayarlayın.
  • MediaRecorder.setAudioEncoder() öğesini kullanarak ses kodlayıcıyı ayarlayın.
  • MediaRecorder örneğinde MediaRecorder.prepare() öğesini çağırın.
  • Ses yakalamayı başlatmak için MediaRecorder.start() öğesini çağırın.
  • Ses yakalamayı durdurmak için MediaRecorder.stop() öğesini çağırın.
  • MediaRecorder örneğiyle işiniz bittiğinde, MediaRecorder.release() öğesini arayın. MediaRecorder.release() yönteminin çağrılması, kaynağın hemen boşaltılması için daima önerilir.
+2

Bu, burada sorulan soruya değinmeyen oldukça genel cevaplardır. – Rajnikant

1

Temel olarak, ses dosyasını basit WAV dosyası olarak yazmak için kolay bir yol yoktur. AudioRecorder, ham Doğrusal PCM formatında veri üretir. Ve Android'in API'sı sadece size ses veri arabellekleri verir.

Kendiniz WAV dosyası oluşturmanız gerekir. Bunun sizin için anlamı şudur: Tüm parçaları kendiniz eklemeniz gerekir: RIFF başlığı, FMT ve DATA parçaları.

0

ait kılma durdurma yöntemini durdurmak için.ve u tek bir dosyada tüm verileri yazmak gerekiyor ve ayrıca u sadece bunu başlık Inforamtion

den vermek gerekir aşağıdaki parametre

recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, 
         RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,RECORDER_AUDIO_ENCODING, bufferSize); 

     recorder.startRecording(); 

ile ve kaydedici ses kaydedici kullanmalıdır

recorder.stopRecording(); 

ama jsut bir problemim var ama bu benim AudioFormat.CHANNEL_IN_MONO..it yine de stereo formatta.

İlgili konular