2009-09-17 34 views

Trả lời

18

Để ghi và theo dõi: Bạn có thể sử dụng hoạt động của trình ghi âm. Dưới đây là một đoạn mã:

Intent recordIntent = new Intent(
       MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
      startActivityForResult(recordIntent, REQUEST_CODE_RECORD); 

Đối với một ví dụ làm việc hoàn hảo như thế nào để ghi lại âm thanh trong đó bao gồm một màn hình nhập liệu, tải về mã nguồn mở dự án Ringdroid: https://github.com/google/ringdroid

Nhìn vào ảnh chụp màn hình và bạn sẽ xem màn hình.

Để tạo chất lượng âm thanh cao hơn, bạn cần có micrô tốt hơn. Việc xây dựng trong mic chỉ có thể nắm bắt rất nhiều (mà không phải là tốt). Một lần nữa, nhìn vào dự án ringdroid, thu thập một số thông tin từ đó. Tại thời điểm đó bạn có thể thực hiện một số thói quen bình thường và khuếch đại để cải thiện âm thanh.

+0

REQUEST_CODE_RECORD là gì? –

+0

Hằng số cục bộ mà tôi sử dụng để xác định kết quả nào tôi nhận được từ yêu cầu trên onActivityResult(). –

30

Hiện tại, lý do lớn cho việc ghi chất lượng âm thanh kém trên Android là codec được sử dụng bởi lớp MediaRecorder (codec AMR-NB). Tuy nhiên, bạn có thể truy cập vào âm thanh không nén qua lớp AudioRecord và ghi trực tiếp vào tệp.

Rehearsal Assistant app thực hiện điều này để lưu âm thanh không nén vào tệp WAV - hãy xem mã nguồn lớp học RehearsalAudioRecord.

Lớp RehearsalAudioRecord cũng cung cấp phương thức getMaxAmplitude, mà bạn có thể sử dụng để phát hiện mức âm thanh tối đa kể từ lần cuối bạn gọi phương thức (MediaRecorder cũng cung cấp phương thức này).

+0

Xin chào, Stjepan Rajko, trong ứng dụng Trợ lý tập luyện, tôi không thể tìm thấy, org.urbanstew.VolumeEnvelopeView, bạn có thể cho tôi biết địa điểm đó ở đâu không? – pengwang

+0

Các codec khác cũng có sẵn trong Android, những gì về chúng http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html#DEFAULT –

Các vấn đề liên quan