Tôi đang cố ghi lại âm thanh từ MIC và vẽ biểu đồ trực tiếp. Tôi có thể ghi lại và vẽ biểu đồ. Vấn đề là các giá trị được ghi lại bằng cách sử dụng mã dưới đây là không chính xác ví dụ ... hình ảnh dưới đây là những gì tôi nhận được khi không có âm thanh ở tất cả hiện tại. Tôi đã thấy các ví dụ bằng cách sử dụng fft nhưng tôi không chắc chắn nếu điều đó sẽ được giúp đỡ trong trường hợp của tôi như tôi đang cố gắng vẽ một đồ thị miền thời gian và tôi thấy không có mục đích để chuyển đổi nó sang miền tần số (bây giờ). Những người khác đang sử dụng sức mạnh trung bình, điều này có thể hữu ích nhưng tôi không chắc chắn.đọc biên độ âm thanh của AndroidRecord từ MIC
Cảm ơn bạn đã được trợ giúp.
bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);
short data [] = new short[bufferSize];
while (!Thread.interrupted()) {
recorder.startRecording();
recorder.read(data, 0, bufferSize);
recorder.stop();
for (short s : data)
{
try {
Thread.sleep((long) 300.00);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
postUI (Math.abs(s));
}
}
recorder.release();
hi làm thế nào bạn đã có được biên độ của âm thanh trong audiorecorder xin vui lòng giúp –
ghi = new AudioRecord (MediaRecorder.AudioSource.MIC, RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSize); recorder.startRecording(); \t \t \t máy ghi.đọc (dữ liệu, 0, bufferSize); \t \t \t ghi.stop(); cho (s ngắn: dữ liệu) { trung bình + = Math.abs (s); } – user591124