Android'de çalışıyorum. Mikrofonla bir ses dosyasını nasıl kaydedebilirim ve kayıtlı dosyayı emülatöre nasıl kaydedebilirim?Android'de ses dosyası nasıl kaydedilir
cevap
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();
İş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.
Bu, burada sorulan soruya değinmeyen oldukça genel cevaplardır. – Rajnikant
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ı.
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.
Uygulamamı emülatörden test ediyorum. Yani sesi emülatörden kaydetmek mümkün mü? lütfen bana yardımcı olun. –
Hayır öyle değil. Fiziksel bir android cihaza ihtiyacınız var. – Mob
Aşağıdaki MediaRecorder sorusuyla ilgili düşüncelerini paylaşan herkes olabilir. Gerçekten takdir edecekler. http://stackoverflow.com/q/32715573/1053097 – muneikh